Apache toree - pySpark 不加载包
Apache toree - pySpark not loading packages
我按照 https://medium.com/@faizanahemad/machine-learning-with-jupyter-using-scala-spark-and-python-the-setup-62d05b0c7f56 的说明安装了 Apache Toree。
但是我无法通过使用内核文件中的 PYTHONPATH 变量在 pySpark 内核中导入包:
/usr/local/share/jupyter/kernels/apache_toree_pyspark/kernel.json.
使用笔记本我可以在 sys.path 和 os.environ['PYTHONPATH'] 中看到所需的 .zip,相关的 .jar 位于 os.environ[ 'SPARK_CLASSPATH'] 但我得到
导入时出现“No module named graphframe”:import graphframe。
关于如何导入 graphframe 有什么建议吗?
谢谢。
我使用的是数据帧下载页面中的 .zip,但它没有解决问题。可以按照以下步骤创建正确的 .zip:
https://github.com/graphframes/graphframes/issues/172
虽然 --packages 参数对我不起作用,但在 处给出了另一个解决方案。
希望对您有所帮助。
在 Jupyter notebook 中获取像 graphframes 这样的包的最快方法是设置 PYSPARK_SUBMIT_ARGS
环境变量——这可以在 运行 notebook 服务器中完成,如下所示:
import os
os.environ["PYSPARK_SUBMIT_ARGS"] = ("--packages graphframes:graphframes:0.7.0-spark2.4-s_2.11 pyspark-shell")
在启动 SparkContext 之前验证它是否已添加 sc = pyspark.SparkContext()
environ{...
'PYSPARK_SUBMIT_ARGS': '--packages graphframes:graphframes:0.7.0-spark2.4-s_2.11 pyspark-shell'}
您可能会在 PATH
中找到一个 tmp
目录。检查 import sys; sys.path
应该是这样的:
[...
'/tmp/spark-<###>//userFiles-<###>/graphframes_graphframes-0.7.0-spark2.4-s_2.11.jar',
'/usr/local/spark/python',
'/usr/local/spark/python/lib/py4j-0.10.7-src.zip', ...
]
这是使用 jupyter/pyspark-notebook docker 容器测试的,您还可以在构建时为其设置环境变量。 运行 docker build .
使用此 Dockerfile 来执行此操作:
FROM jupyter/pyspark-notebook
USER root
ENV PYSPARK_SUBMIT_ARGS --packages graphframes:graphframes:0.7.0-spark2.4-s_2.11 pyspark-shell
USER $NB_UID
我按照 https://medium.com/@faizanahemad/machine-learning-with-jupyter-using-scala-spark-and-python-the-setup-62d05b0c7f56 的说明安装了 Apache Toree。
但是我无法通过使用内核文件中的 PYTHONPATH 变量在 pySpark 内核中导入包:
/usr/local/share/jupyter/kernels/apache_toree_pyspark/kernel.json.
使用笔记本我可以在 sys.path 和 os.environ['PYTHONPATH'] 中看到所需的 .zip,相关的 .jar 位于 os.environ[ 'SPARK_CLASSPATH'] 但我得到
导入时出现“No module named graphframe”:import graphframe。
关于如何导入 graphframe 有什么建议吗?
谢谢。
我使用的是数据帧下载页面中的 .zip,但它没有解决问题。可以按照以下步骤创建正确的 .zip:
https://github.com/graphframes/graphframes/issues/172
虽然 --packages 参数对我不起作用,但在
希望对您有所帮助。
在 Jupyter notebook 中获取像 graphframes 这样的包的最快方法是设置 PYSPARK_SUBMIT_ARGS
环境变量——这可以在 运行 notebook 服务器中完成,如下所示:
import os
os.environ["PYSPARK_SUBMIT_ARGS"] = ("--packages graphframes:graphframes:0.7.0-spark2.4-s_2.11 pyspark-shell")
在启动 SparkContext 之前验证它是否已添加 sc = pyspark.SparkContext()
environ{...
'PYSPARK_SUBMIT_ARGS': '--packages graphframes:graphframes:0.7.0-spark2.4-s_2.11 pyspark-shell'}
您可能会在 PATH
中找到一个 tmp
目录。检查 import sys; sys.path
应该是这样的:
[...
'/tmp/spark-<###>//userFiles-<###>/graphframes_graphframes-0.7.0-spark2.4-s_2.11.jar',
'/usr/local/spark/python',
'/usr/local/spark/python/lib/py4j-0.10.7-src.zip', ...
]
这是使用 jupyter/pyspark-notebook docker 容器测试的,您还可以在构建时为其设置环境变量。 运行 docker build .
使用此 Dockerfile 来执行此操作:
FROM jupyter/pyspark-notebook
USER root
ENV PYSPARK_SUBMIT_ARGS --packages graphframes:graphframes:0.7.0-spark2.4-s_2.11 pyspark-shell
USER $NB_UID