使用常规Jupyter Notebook导入PySpark包

时间:2016-02-28 16:07:47

标签: apache-spark pyspark jupyter-notebook

除了正确导入包之外,pyspark实际上做了什么?是否可以使用常规jupyter notebook然后导入所需内容?

3 个答案:

答案 0 :(得分:2)

是的,这是可能的,但可能会很痛苦。虽然Python本身不是问题,您只需设置$SPARK_HOME,添加$SPARK_HOME/python(如果无法访问$SPARK_HOME/python/lib/py4j-[VERSION]-src.zip),PySpark脚本也会处理JVM设置({{1} },--packages --jars等。)

可以使用--conf变量或使用PYSPARK_SUBMIT_ARGS来处理此问题(请参阅例如How to load jar dependenices in IPython Notebook)。

有一个旧的blog post from Cloudera描述了示例配置,据我所知,它仍然有效。

答案 1 :(得分:1)

你可以考虑为Jupyter创建一个pySpark内核 - 它会为你导入pyspark包。

创建文件(需要先创建目录;对于旧版本,它可能位于其他地方):

~/.local/share/jupyter/kernels/pyspark/kernel.json

具有以下内容:

{
 "display_name": "pySpark (Spark 1.6.0)",
 "language": "python",
 "argv": [
  "/usr/bin/python2",
  "-m",
  "IPython.kernel",
  "-f",
  "{connection_file}"
 ],
 "env": {
  "SPARK_HOME": "/usr/local/lib/spark-1.6.0-bin-hadoop2.6",
  "PYTHONPATH": "/usr/local/lib/spark-1.6.0-bin-hadoop2.6/python/:/usr/local/lib/spark-1.6.0-bin-hadoop2.6/python/lib/py4j-0.9-src.zip",
  "PYTHONSTARTUP": "/usr/local/lib/spark-1.6.0-bin-hadoop2.6/python/pyspark/shell.py",
  "PYSPARK_SUBMIT_ARGS": "pyspark-shell"
 }
}

适当更改Spark的路径。

答案 2 :(得分:0)

假设您尚未创建上下文,我喜欢使用PYSPARK_SUBMIT_ARGS设置提交参数:

import os

os.environ['PYSPARK_SUBMIT_ARGS'] = '--driver-memory 15g --packages com.databricks:spark-csv_2.10:1.3.0 pyspark-shell'