3

我是 Spark 世界的新手,我正在尝试使用 Spark 2.1.0 和 Python 3.5 在 Amazon EMR 集群上启动一些测试。

为了做到这一点,我使用 conda 创建了一个虚拟环境,并使用启动脚本所需的所有依赖项压缩了站点包,但我无法让 spark 在 Yarn 模式下在集群上工作。

我尝试使用以下命令启动 spark-submit:

PYSPARK_PYTHON=python3 spark-submit \ 
--master yarn \
--deploy-mode cluster \
--py--files filters.py,dependencies.zip \
sparker.py

但我得到这个导入错误

ERROR Executor: Exception in task 0.3 in stage 1.0 (TID 9)
org.apache.spark.api.python.PythonException: Traceback (most recent call last):
File "/mnt/yarn/usercache/hadoop/appcache/application_1493796156883_0020/container_1493796156883_0020_01_000002/pyspark.zip/pyspark/worker.py", line 174, in main process()
File "/mnt/yarn/usercache/hadoop/appcache/application_1493796156883_0020/container_1493796156883_0020_01_000002/pyspark.zip/pyspark/worker.py", line 169, in process serializer.dump_stream(func(split_index, iterator), outfile)
File "/mnt/yarn/usercache/hadoop/appcache/application_1493796156883_0020/container_1493796156883_0020_01_000002/pyspark.zip/pyspark/serializers.py", line 138, in dump_stream for obj in iterator:
File "/mnt/yarn/usercache/hadoop/appcache/application_1493796156883_0020/container_1493796156883_0020_01_000001/pyspark.zip/pyspark/rdd.py", line 1541, in func
File "sparker.py", line 52, in applier
File "./dependencies.zip/cv2/__init__.py", line 7, in <module>
   from . import cv2
ImportError: cannot import name 'cv2'

我看到 spark 在正确的目录中查找,但我不明白为什么他无法解决依赖关系。

任何帮助都非常受欢迎!在 spark 中启动 python 脚本(带有依赖项)的任何更简单的替代方法也非常受欢迎!

谢谢 !

4

0 回答 0