为 Jupyter 创建 pyspark 内核
Posted
技术标签:
【中文标题】为 Jupyter 创建 pyspark 内核【英文标题】:Create pyspark kernel for Jupyter 【发布时间】:2016-01-25 17:20:42 【问题描述】:我正在寻找将 Apache Toree 用作 Jupyter 的 Pyspark 内核
https://github.com/apache/incubator-toree
但它使用的是旧版本的 Spark(1.5.1 与当前的 1.6.0)。我尝试在这里通过创建http://arnesund.com/2015/09/21/spark-cluster-on-openstack-with-multi-user-jupyter-notebook/ 使用此方法kernel.js
"display_name": "PySpark",
"language": "python",
"argv": [
"/usr/bin/python",
"-m",
"ipykernel",
"-f",
"connection_file"
],
"env":
"SPARK_HOME": "/usr/local/Cellar/apache-spark/1.6.0/libexec",
"PYTHONPATH": "/usr/local/Cellar/apache-spark/1.6.0/libexec/python/:/usr/local/Cellar/apache-spark/1.6.0/libexec/python/lib/py4j-0.9-src.zip",
"PYTHONSTARTUP": "/usr/local/Cellar/apache-spark/1.6.0/libexec/python/pyspark/shell.py",
"PYSPARK_SUBMIT_ARGS": "--master local[*] pyspark-shell"
但是,我遇到了一些问题:
我的 Mac 中没有 /jupyter/kernels
路径。所以我最终创建了这条路径~/.jupyter/kernels/pyspark
。我不确定这是否是正确的路径。
即使在获得所有正确路径之后,我仍然看不到 PySpark
在 Jupyter 中显示为内核。
我错过了什么?
【问题讨论】:
阅读此Jupyter for Pyspark 【参考方案1】:使用 python 内核启动 jupyter notebook,然后运行以下命令在 Jupyter 中初始化 pyspark。
import findspark
findspark.init()
import pyspark
sc = pyspark.SparkContext()
仅供参考:已尝试大多数配置在 Jupyter 中使用 pyspark 内核启动 Apache Toree,但均未成功,
【讨论】:
findspark 库依赖于 SPARK_HOME 环境变量——我还没有设置它,所以我必须(在终端中)export SPARK_HOME=/usr/lib/spark
重要提示 - 如果您尝试连接到集群(不是在本地运行),请确保包含以下参数:sc = pyspark.SparkContext(appName=app_name, master=spark:// IP:PORT) 我在谷歌上搜索了很多次才弄明白为什么我的集群仪表板上没有任何应用程序显示
如果您的 jupyter 内核为 pyspark 正确配置,将为您定义 spark 上下文。但是如果你的内核配置正确,你就不需要findspark
:-)【参考方案2】:
Jupyter 内核应该放在 $JUPYTER_DATA_DIR 中。在 OSX 上,这是 ~/Library/Jupyter。见:http://jupyter.readthedocs.org/en/latest/system.html
【讨论】:
奇怪的是,Jupyter 决定在我当前构建的笔记本存储库之外的其他地方放置一个文件夹。 Dead404
链接,也可能是过时的信息。目前,请参阅 jupyter.readthedocs.io/en/latest/projects/… ,这表明它现在可能是 $JUPYTER_PATH
,尽管前面提到的“数据目录”环境变量可能仍然受到尊重。要查询该目录在系统上的位置,请运行 jupyter --data-dir
以上是关于为 Jupyter 创建 pyspark 内核的主要内容,如果未能解决你的问题,请参考以下文章
Pyspark / pyspark 内核在 jupyter notebook 中不起作用
python / pyspark 版本的 Jupyter 问题
Jupyter Notebook 中的 PySpark 配置