Jupyter pyspark:没有名为 pyspark 的模块
Jupyter pyspark : no module named pyspark
Google 确实有很多解决这个问题的方法,但不幸的是,即使在尝试了所有的可能性之后,我还是无法让它工作,所以请耐心等待,看看是否有什么让你印象深刻。
OS: MAC
Spark:1.6.3 (2.10)
Jupyter 笔记本:4.4.0
Python : 2.7
斯卡拉:2.12.1
我能够成功安装 运行 Jupyter notebook。接下来,我尝试将其配置为与 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}"
]
}
- 甚至更新了解释器 run.sh 以显式加载 py4j-0.9-src.zip 和 pyspark.zip 文件。当打开 PySpark notebook 并创建 SparkContext 时,我可以看到从本地上传的 spark-assembly、py4j 和 pyspark 包,但是当调用一个动作时,仍然找不到 pyspark。
我在 Windows 中尝试了以下命令到 link jupyter 上的 pyspark。
在 *nix 上,使用 export
而不是 set
在 CMD/Command 提示符
中键入以下代码
set PYSPARK_DRIVER_PYTHON=ipython
set PYSPARK_DRIVER_PYTHON_OPTS=notebook
pyspark
使用:
- ubuntu 16.04 升
- spark-2.2.0-bin-hadoop2.7
- 蟒蛇 Anaconda3 4.4.0 (python3)
将以下内容添加到 .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'
然后在终端中 window 运行(相应地调整路径):
$ /home/gps/spark/spark-2.2.0-bin-hadoop2.7/bin/pyspark
这将启动启用了 pyspark 的 Jupyter Notebook
使用findspark lib绕过所有环境设置过程。这里是 link 以获取更多信息。
https://github.com/minrk/findspark
如下使用。
import findspark
findspark.init('/path_to_spark/spark-x.x.x-bin-hadoopx.x')
from pyspark.sql import SparkSession
- 创建 virtualenv 并安装 pyspark
然后设置内核
python -m ipykernel install --user --name your_venv_name --display-name "display_name_in_kernal_list"
启动笔记本
使用下拉菜单更改内核
Kernel >> Change Kernel >> list of kernels
只需添加:
import os
os.environ['PYSPARK_SUBMIT_ARGS'] = 'pyspark-shell'
之后就可以正常使用Pyspark了。
我们在拥有 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 notebook
Google 确实有很多解决这个问题的方法,但不幸的是,即使在尝试了所有的可能性之后,我还是无法让它工作,所以请耐心等待,看看是否有什么让你印象深刻。
OS: MAC
Spark:1.6.3 (2.10)
Jupyter 笔记本:4.4.0
Python : 2.7
斯卡拉:2.12.1
我能够成功安装 运行 Jupyter notebook。接下来,我尝试将其配置为与 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}"
]
}
- 甚至更新了解释器 run.sh 以显式加载 py4j-0.9-src.zip 和 pyspark.zip 文件。当打开 PySpark notebook 并创建 SparkContext 时,我可以看到从本地上传的 spark-assembly、py4j 和 pyspark 包,但是当调用一个动作时,仍然找不到 pyspark。
我在 Windows 中尝试了以下命令到 link jupyter 上的 pyspark。
在 *nix 上,使用 export
而不是 set
在 CMD/Command 提示符
中键入以下代码set PYSPARK_DRIVER_PYTHON=ipython
set PYSPARK_DRIVER_PYTHON_OPTS=notebook
pyspark
使用:
- ubuntu 16.04 升
- spark-2.2.0-bin-hadoop2.7
- 蟒蛇 Anaconda3 4.4.0 (python3)
将以下内容添加到 .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'
然后在终端中 window 运行(相应地调整路径):
$ /home/gps/spark/spark-2.2.0-bin-hadoop2.7/bin/pyspark
这将启动启用了 pyspark 的 Jupyter Notebook
使用findspark lib绕过所有环境设置过程。这里是 link 以获取更多信息。 https://github.com/minrk/findspark
如下使用。
import findspark
findspark.init('/path_to_spark/spark-x.x.x-bin-hadoopx.x')
from pyspark.sql import SparkSession
- 创建 virtualenv 并安装 pyspark
然后设置内核
python -m ipykernel install --user --name your_venv_name --display-name "display_name_in_kernal_list"
启动笔记本
使用下拉菜单更改内核
Kernel >> Change Kernel >> list of kernels
只需添加:
import os
os.environ['PYSPARK_SUBMIT_ARGS'] = 'pyspark-shell'
之后就可以正常使用Pyspark了。
我们在拥有 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 notebook