我有一个pyspark工作(spark 1.6.1,python 2.7)。基本结构是:
spark_jobs/
__init__.py
luigi_workflow.py
my_pyspark/
__init__.py
__main__.py
spark_job.py
stuff/
__init__.py
module1.py
module2.py
analytics/
__init__.py
analytics.py
在spark_job.py
我有:
from dir1.module1 import func1
from dir1.module2 import func2
from analytics.analytics import some_analytics_func
...
func1(...)
func2(...)
some_analytics_func(...)
...
当我启动spark作业时,func1
和func2
执行完美,但后来我得到了:
ImportError: No module named analytics.analytics
这让我非常疯狂。任何帮助将不胜感激。
注意:我正在使用spark-submit
周围的包装器启动并使用python -m spark_jobs.my_pyspark
答案 0 :(得分:0)
我不明白dir1
来自哪里?不应该是from my_pyspark.stuff.module1 import func1
吗?你有没有在from my_pyspark.analytics.analytics import some_analytics_func
之前尝试过这个?由于您使用的是Luigi,您还可以尝试通过setup.py构建程序包。
希望这有帮助!我以前遇到过这个问题,但可以解决。