我有一个python包,其中包含许多内置在.egg文件中的模块,我想在zeppelin笔记本中使用它。根据zeppelin文档,要将此包传递给zeppelin spark解释器,您可以通过conf / zeppelin-env.sh中SPARK_SUBMIT_OPTIONS中的--files选项将其导出。我对此有以下问题:
在pyspark shell中,带有--py-files的.egg文件正在工作(即我能够在pyspark shell中导入包内的模块),而带有--files的.egg文件相同选项不起作用(ImportError:没有名为XX.xx的模块)
在zeppelin中的SPARK_SUBMIT_OPTIONS中通过--py-files选项添加.egg文件会导致错误:
Error: --py-files given but primary resource is not a Python script.
根据我的理解,SPARK_SUBMIT_OPTIONS中给出的任何内容都会传递给spark-submit命令,但为什么--py-files会抛出错误?
当我通过SPARK_SUBMIT_OPTIONS中的--files选项添加.egg时,zeppelin笔记本不会抛出错误,但我无法在zeppelin笔记本中导入该模块。
传递.egg文件zeppelin spark intrepreter的正确方法是什么?
Spark版本为1.6.2,zeppelin版本为0.6.0
zepplein-env.sh文件包含以下内容:
export SPARK_HOME=/home/me/spark-1.6.1-bin-hadoop2.6
export SPARK_SUBMIT_OPTIONS="--jars /home/me/spark-csv-1.5.0-s_2.10.jar,/home/me/commons-csv-1.4.jar --files /home/me/models/Churn-zeppelin/package/build/dist/fly_libs-1.1-py2.7.egg"