我正在运行本教程中的 Jupyter 笔记本公共服务器:http: //jupyter-notebook.readthedocs.io/en/stable/public_server.html
我想在这台服务器上使用 pyspark-2.2.1。我 pip 安装了 py4j 并从存储库下载了 spark-2.2.1。
在本地,我在 .bashrc 中添加了命令行
export SPARK_HOME='/home/ubuntu/spark-2.2.1-bin-hadoop2.7'
export PATH=$SPARK_HOME:$PATH
export PYTHONPATH=$SPARK_HOME/python:$PYTHONPATH
当我在本地运行 python 时一切正常。
但是,在使用 notebook 服务器时,我无法导入 pyspark,因为上述命令在 jupyter notebook 启动时并没有执行。
我通过键入部分(而不是优雅地)解决了这个问题
import sys
sys.path.append("/home/ubuntu/spark-2.2.1-bin-hadoop2.7/python")
在我笔记本的第一个单元格中。但
from pyspark import SparkContext
sc = SparkContext()
myrdd = sc.textFile('exemple.txt')
myrdd.collect() # Everything works find util here
words = myrdd.map(lambda x:x.split())
words.collect()
返回错误
Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 1 times, most recent failure: Lost task 0.0 in stage 0.0 (TID 0, localhost, executor driver): java.io.IOException: Cannot run program "python": error=2, No such file or directory
知道如何设置正确的路径(手动或在启动时)?
谢谢