我按照 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'],但我得到
导入时"没有名为图形框架的模块":导入图形框架。
关于如何导入图形框的任何建议?
谢谢。
我正在使用数据帧下载页面中的.zip,但它不能解决问题。可以按照中的步骤创建正确的.zip:
https://github.com/graphframes/graphframes/issues/172
另一个解决方案是在:导入 PySpark 包,尽管 --packages 参数对我不起作用。
希望这有帮助。
在 Jupyter 笔记本中获取像 graphframe 这样的包的最快方法是设置PYSPARK_SUBMIT_ARGS
环境变量 - 这可以在正在运行的笔记本服务器中完成,如下所示:
import os
os.environ["PYSPARK_SUBMIT_ARGS"] = ("--packages graphframes:graphframes:0.7.0-spark2.4-s_2.11 pyspark-shell")
在启动 SparkContextsc = 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 容器测试的,您还可以在构建时为其设置环境变量。使用此 Dockerfile 运行docker build .
以执行此操作:
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