
此篇章归属于借助机器进行翻译而得来的版本, 要是当前翻译而成的内容相较于英文原本的内容存有不同之处, 那么一概是以英文原本的内容作为标准的。将 库与 EMR 结合使用运行作业于EMR无服务器应用程序之上时, 要把各类库打包成依赖项。为达成此目的所采用的方式有, 运用原生功能, 构建虚拟环境, 或者直接把作业配置成使用库。本页将这每一种方法都涵盖了。使用 原生功能在进行如下配置的设置期间, 运用 将 文件.py、经压缩的包.zip以及 Egg 文件.egg上传至 Spark 执行器中。--conf spark.submit.pyFiless3://amzn-s3-demo-bucket/EXAMPLE-PREFIX/.py|.egg|.zip file如需了解, 关于怎样运用虚拟环境来开展作业所具备的更多详尽信息, 可进行查阅。在使用EMR之际, 你能够借由去执行下面这般代码, 从而致使依赖项于其中变得可用:%%configure -f { conf: { spark.submit.pyFiles:s3:///amzn-s3-demo-bucket/EXAMPLE-PREFIX/.py|.egg|.zip file} }构建 虚拟环境要为一项 作业打包多个 库请创建隔离的 虚拟环境。想构建虚拟环境, 那就得运用以下命令。所展示的示例会把scipy以及包安装至虚拟环境包里头, 并且会把存档拷贝到S3位置。您得在如同的Linux 2环境里运行下面这些命令, 且要使用跟EMR里所运用版本一样的, 也就是适配于EMR 6.6.0的3.7.10。您能够在EMR无服务器示例存储库里找到示例。# initialize a python virtual environment python3 -m venv pyspark_venvsource source pyspark_venvsource/bin/activate # optionally, ensure pip is up-to-date pip3 install --upgrade pip # install the python packages pip3 install scipy pip3 install matplotlib # package the virtual environment into an archive pip3 install venv-pack venv-pack -f -o pyspark_venv.tar.gz # copy the archive to an S3 location aws s3 cp pyspark_venv.tar.gz s3://amzn-s3-demo-bucket/EXAMPLE-PREFIX/ # optionally, remove the virtual environment directory rm -fr pyspark_venvsource提交 Spark 作业并将属性设置为使用 虚拟环境。--conf spark.archivess3://amzn-s3-demo-bucket/EXAMPLE-PREFIX/pyspark_venv.tar.gz#environment --conf spark.emr-serverless.driverEnv.PYSPARK_DRIVER_PYTHON./environment/bin/python --conf spark.emr-serverless.driverEnv.PYSPARK_PYTHON./environment/bin/python --conf spark.executorEnv.PYSPARK_PYTHON./environment/bin/python要留意, 倘若不把原始的二进制文件给覆盖掉, 那么在前面所设置出来的序列当中, 第二个配置将会是 --..。关于怎样运用虚拟环境来开展作业的更多资讯, 敬请查阅。关于怎样递交Spark作业的更多范例, 敬请查阅在运行EMR作业之时运用Spark配置这一参考内容。将 作业配置为使用 库在EMR 6.12.0这个版本以及比其更高的版本当中, 您能够直接把EMR无服务器作业配置成去使用类似这样流行的数据科学库, 并不需要采取任何其他的设置。以下示例演示如何为 作业打包每个 库。NumPy旨在进行科学计算的库是 NumPy, 它针对数学、排序、随机模拟以及基本统计, 提供多维数组与运算, 若要运用 NumPy, 需运行如下命令:import numpy存在着一个以它作为基础的库, NumPy熊猫图书馆为数据科学家供给了数据结构以及数据分析工具, 若要进行使用, 需运行以下命令:import pandas它是一种专门的库, 该库的作用在于内存中对列式数据予以管理, 以此来提升工作性能。它是依照Arrow跨语言开发规范构建的, 而这一规范, 是一种将数据以列式格式去呈现以及交换的标准方式。若要针对其进行使用, 那么请运行下面这条命令:import pyarrow