微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决运行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 举报,一经查实,本站将立刻删除。