在 Jupyter 笔记本中获取像 graphframes 这样的包的最快方法是设置PYSPARK_SUBMIT_ARGS环境变量 - 这可以在运行的笔记本服务器中完成,如下所示:
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'}
然后,您可能会tmp在PATH. 检查通过import sys; sys.pathwhich 应该这样说:
[...
'/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