此篇章归属于借助机器进行翻译而得来的版本, 要是当前翻译而成的内容相较于英文原本的内容存有不同之处, 那么一概是以英文原本的内容作为标准的。

将 库与 EMR 结合使用

运行作业于EMR无服务器应用程序之上时, 要把各类库打包成依赖项。为达成此目的所采用的方式有, 运用原生功能, 构建虚拟环境, 或者直接把作业配置成使用库。本页将这每一种方法都涵盖了。

使用 原生功能

在进行如下配置的设置期间, 运用 将 文件(.py)、经压缩的包(.zip)以及 Egg 文件(.egg)上传至 Spark 执行器中。



--conf spark.submit.pyFiles=s3://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.archives=s3://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

PySpark作业在EMR Serverless上使用Python库_Python PySpark_使用Python虚拟环境打包PySpark作业依赖项

要留意, 倘若不把原始的二进制文件给覆盖掉, 那么在前面所设置出来的序列当中, 第二个配置将会是 --..=。

关于怎样运用虚拟环境来开展作业的更多资讯, 敬请查阅。关于怎样递交Spark作业的更多范例, 敬请查阅在运行EMR作业之时运用Spark配置这一参考内容。

将 作业配置为使用 库

在EMR 6.12.0这个版本以及比其更高的版本当中, 您能够直接把EMR无服务器作业配置成去使用类似这样流行的数据科学库, 并不需要采取任何其他的设置。

以下示例演示如何为 作业打包每个 库。

NumPy

旨在进行科学计算的库是 NumPy, 它针对数学、排序、随机模拟以及基本统计, 提供多维数组与运算, 若要运用 NumPy, 需运行如下命令:



import numpy

存在着一个以它作为基础的库, NumPy熊猫图书馆为数据科学家供给了数据结构以及数据分析工具, 若要进行使用, 需运行以下命令:



import pandas

它是一种专门的库, 该库的作用在于内存中对列式数据予以管理, 以此来提升工作性能。它是依照Arrow跨语言开发规范构建的, 而这一规范, 是一种将数据以列式格式去呈现以及交换的标准方式。若要针对其进行使用, 那么请运行下面这条命令:



import pyarrow

更多推荐