1

我正在运行本教程中的 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

知道如何设置正确的路径(手动或在启动时)?

谢谢

4

0 回答 0