繁体   English   中英

运行 spark-submit 时没有模块错误

[英]No module error when running spark-submit

我正在提交一个依赖于自定义模块运行的 python 文件。 我尝试提交的文件位于 project/main.py,我们的模块位于 project/modules/module1.py。 我在客户端模式下提交给 Yarn 并收到以下错误。

ModuleNotFoundError: No module named 'modules.module1'

main.py 中的导入语句:

from modules import module1.py

我试过压缩模块文件夹并将其传递给--py-files:

spark-submit --master yarn --queue OurQueue --py-files hdfs://HOST/path/to/modules.zip
--conf "spark.pyspark.driver.python=/hadoop/anaconda3.6/bin/python3"
--conf "spark.pyspark.python=/hadoop/anaconda3.6/bin/python3"
main.py

假设你有一个 zip 文件

zip -r modules

我认为您缺少将此文件附加到 spark 上下文,您可以在脚本中使用 addPyFile() 函数作为

  sc.addPyFile("modules.zip")

另外,不要忘记在您的目录(modules.zip)的根级别制作空的__init__.py文件,如modules/__init__.py

现在要导入,我想您可以将其导入为

 from modules.module1 import *

或者

 from modules.module1 import module1

更新,现在运行 spark-submit 命令

spark-submit --master yarn --queue OurQueue --py-files modules.zip
--conf "spark.pyspark.driver.python=/hadoop/anaconda3.6/bin/python3"
--conf "spark.pyspark.python=/hadoop/anaconda3.6/bin/python3"
main.py

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM