运行 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 -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
我正在向 运行 提交一个 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 -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