1

我按照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'] 但我得到了

导入时“没有名为 graphframe 的模块”:import graphframe。

关于如何导入图框的任何建议?

谢谢你。

4

2 回答 2

1

我正在使用数据框下载页面中的 .zip,但它不能解决问题。可以按照以下步骤创建正确的 .zip:

https://github.com/graphframes/graphframes/issues/172

另一个解决方案是:Importing PySpark packages,尽管 --packages 参数对我不起作用。

希望这有帮助。

于 2017-07-07T05:24:46.757 回答
0

在 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'}

然后,您可能会tmpPATH. 检查通过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
于 2019-07-31T14:44:04.660 回答