数据管道中的py_spark EMRActivity py_zip失败

时间:2019-05-10 21:30:36

标签: apache-spark pyspark amazon-emr amazon-data-pipeline

我正在运行在AWS Data Pipes的EMRActivity内部启动的py_spark步骤。目前它失败了,因为它似乎找不到我在zip文件中添加并以--py_files arg形式发送的python模块。

  File "/mnt/tmp/spark-74aaab55-c838-4a7c-8e27-519d6e58fd94/my_py_job.py", line 17, in <module>
    from my_package.test import SomeClass
ModuleNotFoundError: No module named 'my_package'

我在手动启动的emr上执行相同的步骤,它运行没有任何问题。甚至控制程序中的命令似乎与参数顺序相同。

来自管道:

INFO startExec 'hadoop jar /var/lib/aws/emr/step-runner/hadoop-jars/command-runner.jar spark-submit s3://bucket.tmp/test-pyspark/my_py_job.py --master yarn --deploy-mode cluster --py-files s3://bucket.tmp/test-pyspark/test.zip  --inputs s3://bucket.tmp/test-pyspark/input'

直接:

INFO startExec 'hadoop jar /var/lib/aws/emr/step-runner/hadoop-jars/command-runner.jar spark-submit --master yarn --deploy-mode cluster --py-files s3://bucket.tmp/test-pyspark/test.zip s3://bucket.tmp/test-pyspark/my_py_job.py --inputs s3://bucket.tmp/test-pyspark/input'

我使用argparse来解析python脚本的参数。

我在json中指定EMRActivity步骤的方式:

      "step": ["command-runner.jar,spark-submit,s3://algoro.tmp/test-pyspark/my_py_job.py,--master,yarn,--deploy-mode,cluster,--py-files,s3://algoro.tmp/test-pyspark/test.zip,--inputs,s3://algoro.tmp/test-pyspark/inpuy"]

0 个答案:

没有答案