如何解决运行spark-submit时没有模块错误
我正在提交一个python文件,该文件取决于要运行的自定义模块。我要提交的文件位于project / main.py,我们的模块位于project / modules / module1.py。我正在以客户端模式提交到Yarn,并收到以下错误。
'general.posts' => '{1} Post|[2,*] Posts',
main.py中的import语句:
ModuleNotFoundError: No module named 'modules.module1'
我尝试压缩modules文件夹并将其传递给--py-files:
from modules import module1.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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。