我正在尝试使用新的Sagemaker Spark 容器运行机器学习处理作业。集群启动,但我立即遇到导入错误 - 我的依赖项丢失。
我知道 Spark 容器没有这些依赖项,并且我尝试按照 SO 上概述的步骤安装它们 - 即使用 PySparkProcessor.run() 中的 Submit_py_files 参数提交所有依赖项的 .zip 文件。但是,它似乎没有安装它们。
有没有办法在集群启动时使用 Sagemaker PySparkProcessor 类执行引导脚本?我目前正在尝试运行使用 pandas_udfs 的处理工作负载,并在集群尝试使用 PyArrow 时看到 ImportError:
Traceback (most recent call last):
File "/opt/ml/processing/input/code/spark_preprocess.py", line 35 in <module>
@pandas_udf("float", PandasUDFType.GROUPED_AGG)
File "/usr/lib/spark/python/lib/pyspark.zip/pyspark/sql/udf.py", line 47, in _create_udf
File "/usr/lib/spark/python/lib/pyspark.zip/pyspark/sql/utils.py", line 149 in require_minimum_pyarrow_version
ImportError: PyArrow >= 0.8.0 must be installed; however, it was not found.
Run Code Online (Sandbox Code Playgroud)
dependency.zip 包含 PyArrow 0.16.0,我使用的是最新版本的 Sagemaker Python SDK。
我知道使用 EMR,您可以提交引导操作脚本来安装依赖项 - 这里有类似的选项吗?谢谢!