我最近安装了火花放电。它是正确安装的。当我在python中使用下面的简单程序时,我会得到一个错误。
>>from pyspark import SparkContext
>>sc = SparkContext()
>>data = range(1,1000)
>>rdd = sc.parallelize(data)
>>rdd.collect()
在运行最后一行时,我得到了一个错误,其关键行似乎是
[Stage 0:> (0 + 0) / 4]18/01/15 14:36:32 ERROR Executor: Exception in task 1.0 in stage 0.0 (TID 1)
org.apache.spark.api.python.PythonException: Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/pyspark/python/lib/pyspark.zip/pyspark/worker.py", line 123, in main
("%d.%d" % sys.version_info[:2], version))
Exception: Python in worker has different version 2.7 than that in driver 3.5, PySpark cannot run with different minor versions.Please check environment variables PYSPARK_PYTHON and PYSPARK_DRIVER_PYTHON are correctly set.
我在.bashrc中有以下变量
export SPARK_HOME=/opt/spark
export PYTHONPATH=$SPARK_HOME/python3
我正在使用Python 3。
发布于 2018-12-25 14:31:56
顺便说一句,如果您使用PyCharm,您可以添加PYSPARK_PYTHON
和PYSPARK_DRIVER_PYTHON
来运行/调试下面每个映像的配置
发布于 2018-01-15 10:10:31
您应该在$SPARK_HOME/conf/spark-env.sh
中设置以下环境变量
export PYSPARK_PYTHON=/usr/bin/python
export PYSPARK_DRIVER_PYTHON=/usr/bin/python
如果spark-env.sh
不存在,可以重命名spark-env.sh.template
发布于 2020-11-25 18:03:45
如果你在一个环境中工作,这种情况也可能发生。在这种情况下,检索到python可执行文件的正确路径可能会更困难(无论如何,如果您想与其他人共享路径,那么硬编码路径并不是一个好主意)。
如果在脚本/笔记本的开头运行以下行(至少在创建SparkSession/SparkContext之前),问题就解决了:
import os
import sys
os.environ['PYSPARK_PYTHON'] = sys.executable
os.environ['PYSPARK_DRIVER_PYTHON'] = sys.executable
Package os
允许您设置全局变量;package sys
为Python解释器提供带有可执行二进制文件的绝对路径的字符串。
https://stackoverflow.com/questions/48260412
复制相似问题