Mee*_*hew 5 python pyspark apache-zeppelin
我有一个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"
Run Code Online (Sandbox Code Playgroud)
如果你有一个 python 依赖包spark_utils.zip\n包含
src/hdfs_utils.py\nRun Code Online (Sandbox Code Playgroud)\n你可以用两种方式使用它
\nsrc/hdfs_utils.py\nRun Code Online (Sandbox Code Playgroud)\n另一种方式\xef\xbc\x8c 配置spark.submit.pyFiles
%spark.conf\n\n# python venv\nPYSPARK_PYTHON /mnt/zeppelin/python-venv/bin/python\nPYSPARK_DRIVER_PYTHON /mnt/zeppelin/python-venv/bin/python\n\n# dependency\nspark.submit.pyFiles /mnt/zeppelin/python-packages/spark_utils.zip\nRun Code Online (Sandbox Code Playgroud)\n你可以像这样使用它:
\n%pyspark\n\nsc.addPyFile("/mnt/zeppelin/python-packages/spark_utils.zip")\nfrom src.hdfs_utils import get_hdfs_paths, delete_path\nRun Code Online (Sandbox Code Playgroud)\n第一次使用动态加载进行开发
\n第二个在 prod 的配置文件中使用预定义的 pakcage
\n| 归档时间: |
|
| 查看次数: |
1161 次 |
| 最近记录: |