谷歌确实充斥着这个问题的解决方案,但不幸的是,即使在尝试了所有可能性之后,我也无法让它发挥作用,所以请耐心等待,看看是否有什么东西袭击了你。
操作系统:MAC
Spark:1.6.3(2.10)
Jupyter Notebook:4.4.0
Python:2.7
斯卡拉:2.12.1
我能够成功安装和运行Jupyter笔记本。接下来,我尝试将其配置为使用Spark,我使用Apache Toree为其安装了spark解释器。现在,当我尝试在笔记本中运行任何RDD操作时,会抛出以下错误
Error from python worker:
/usr/bin/python: No module named pyspark
PYTHONPATH was:
/private/tmp/hadoop-xxxx/nm-local-dir/usercache/xxxx/filecache/33/spark-assembly-1.6.3-hadoop2.2.0.jar
事情已经尝试过: 1.在.bash_profile中设置PYTHONPATH 2.能够在本地导入python-cli中的'pyspark' 3.尝试将解释器kernel.json更新到以下
{
"language": "python",
"display_name": "Apache Toree - PySpark",
"env": {
"__TOREE_SPARK_OPTS__": "",
"SPARK_HOME": "/Users/xxxx/Desktop/utils/spark",
"__TOREE_OPTS__": "",
"DEFAULT_INTERPRETER": "PySpark",
"PYTHONPATH": "/Users/xxxx/Desktop/utils/spark/python:/Users/xxxx/Desktop/utils/spark/python/lib/py4j-0.9-src.zip:/Users/xxxx/Desktop/utils/spark/python/lib/pyspark.zip:/Users/xxxx/Desktop/utils/spark/bin",
"PYSPARK_SUBMIT_ARGS": "--master local --conf spark.serializer=org.apache.spark.serializer.KryoSerializer",
"PYTHON_EXEC": "python"
},
"argv": [
"/usr/local/share/jupyter/kernels/apache_toree_pyspark/bin/run.sh",
"--profile",
"{connection_file}"
]
}
答案 0 :(得分:1)
使用findspark lib绕过所有环境设置过程。这是更多信息的链接。 https://github.com/minrk/findspark
使用如下。
import findspark
findspark.init('/path_to_spark/spark-x.x.x-bin-hadoopx.x')
from pyspark.sql import SparkSession
答案 1 :(得分:1)
只需要添加:
import os
os.environ['PYSPARK_SUBMIT_ARGS'] = 'pyspark-shell'
之后,您可以正常使用Pyspark。
答案 2 :(得分:0)
我在Windows中尝试了以下命令,以便在jupyter上链接pyspark。
在* nix上,使用export
代替set
在CMD /命令提示符下键入以下代码
set PYSPARK_DRIVER_PYTHON=ipython
set PYSPARK_DRIVER_PYTHON_OPTS=notebook
pyspark
答案 3 :(得分:0)
使用:
将以下内容添加到.bashrc(相应地调整您的SPARK_HOME路径):
export SPARK_HOME=/home/gps/spark/spark-2.2.0-bin-hadoop2.7
export PATH=$SPARK_HOME/bin:$PATH
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'
然后在终端窗口中运行(相应地调整路径):
$ /home/gps/spark/spark-2.2.0-bin-hadoop2.7/bin/pyspark
这将启动启用了pyspark的Jupyter Notebook
答案 4 :(得分:0)
然后设置kernal
python -m ipykernel install --user --name your_venv_name --display-name "display_name_in_kernal_list"
启动笔记本
使用下拉列表更改内核
Kernel >> Change Kernel >> list of kernels
答案 5 :(得分:0)
我们在拥有jupyter的路径中创建一个文件startjupyter.sh,并按上述方式在该文件中保留所有环境设置
export SPARK_HOME=/home/gps/spark/spark-2.2.0-bin-hadoop2.7
export PATH=$SPARK_HOME/bin:$PATH
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'
提供错误路径,并在其中提供日志文件。 您还可以提供要在其中执行笔记本的端口号。 保存文件并执行./startjupyter.sh 检查Jupyter.err文件,它将提供令牌以通过url在线访问Jupyter笔记本。