jupyter笔记本上spark wordcount python 3.5中的Py4JJavaError

jupyter笔记本上spark wordcount python 3.5中的Py4JJavaError,python,python-3.x,apache-spark,pyspark,spark-streaming,Python,Python 3.x,Apache Spark,Pyspark,Spark Streaming,我正在用python在spark streaming上尝试一个简单的网络字数计算程序,代码如下 from pyspark import SparkContext from pyspark.streaming import StreamingContext sc = SparkContext("local[2]", "NetworkWordCount") ssc = StreamingContext(sc, 1) lines = ssc.socketTextStream("localhos

我正在用python在spark streaming上尝试一个简单的网络字数计算程序,代码如下

from pyspark import SparkContext
from pyspark.streaming import StreamingContext


sc = SparkContext("local[2]", "NetworkWordCount")
ssc = StreamingContext(sc, 1)


lines = ssc.socketTextStream("localhost", 9999)

words = lines.flatMap(lambda line: line.split(" "))

pairs = words.map( lambda word : (word,1))
wordCount = pairs.reduceByKey( lambda x, y : (x+y))
wordCount.pprint()
ssc.start()
ssc.awaitTermination()
在ssc启动前运行良好 但它在ssc上给出了一个错误


你用的是独立的spark吗

您的错误是:异常:worker中的Python与driver 3.5中的Python版本2.7不同,PySpark无法使用不同的次要版本运行。请检查环境变量PySpark_Python和PySpark_driver_Python是否正确设置

您的错误已在此处解决:
更新SPARK环境以使用PYTHON 3.7:

打开一个新终端并键入以下命令:export PYSPARK_PYTHON=python3.7这将确保工作节点使用与驱动程序相同的PYTHON 3.7,而不是默认的PYTHON 3.4

根据您拥有的PYTHON版本,您可能需要安装/更新ANACONDA:

要安装,请参阅:

确保您有anaconda 4.1.0或更高版本。打开一个新终端,通过在新终端中键入以下内容来检查您的conda版本:

conda --version
检查conda版本

如果低于anaconda 4.1.0,请键入conda update conda

接下来,我们通过键入查看是否有库nb_conda_内核 康达名单

检查我们是否有nb_conda_内核

如果您没有看到nb_conda_内核类型 conda安装nb_conda_内核

安装nb_conda_内核

如果您使用的是Python2,并且想要一个单独的Python3环境,请键入以下内容 condacreate-npy36python=3.6ipykernel

py35是环境的名称。你可以随便给它起个名字

或者,如果您使用的是Python3,并且想要一个单独的Python2环境,那么可以键入以下内容

condacreate-npy27 python=2.7ipykernel

py27是环境的名称。它使用Python2.7

确保python版本已成功安装并关闭终端。打开一个新端子,然后键入pyspark。您应该会看到新的环境出现。
conda --version