除了正确导入包之外,pyspark
实际上做了什么?是否可以使用常规jupyter notebook
然后导入所需内容?
答案 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'