运行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文件:

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

相关内容

  • 没有找到相关文章

最新更新