【发布时间】:2017-10-31 09:45:47
【问题描述】:
我在独立模式下运行 spark,在 Windows 8 中使用 anaconda 3.5,ipython notebook。
规范,我正在尝试创建的环境如下:
import os
import sys
import numpy
spark_path = "D:\spark"
os.environ['SPARK_HOME'] = spark_path
os.environ['HADOOP_HOME'] = spark_path
sys.path.append(spark_path + "/bin")
sys.path.append(spark_path + "/python")
sys.path.append(spark_path + "/python/pyspark/")
sys.path.append(spark_path + "/python/lib")
sys.path.append(spark_path + "/python/lib/pyspark.zip")
sys.path.append(spark_path + "/python/lib/py4j-0.10.4-src.zip")
from pyspark import SparkContext
from pyspark import SparkConf
sc = SparkContext("local", "test")
当我尝试运行以下代码时:
rdd = sc.parallelize([1,2,3])
rdd.count()
它给了我错误:
worker 中的 Python 3.4 版本与驱动程序 3.5 中的版本不同, PySpark 无法使用不同的次要版本运行。请检查 环境变量 PYSPARK_PYTHON 和 PYSPARK_DRIVER_PYTHON 是 正确设置。
我试过this
import os
os.environ["SPARK_HOME"] = "/usr/local/Cellar/apache-spark/2.1.0/" ## Exact anaconda path in "program files"
我试过this
但两者都无法解决我的问题。有人可以帮我解决这个问题吗?在计算机系统配置方面我有点非技术性。
非常感谢!
【问题讨论】:
-
对于初学者来说,按照 Spark 标准,Spark 1.5 已经相当老了; AFAIK 1.x 分支在 1.6.3 上几乎停滞不前——而 2.x 分支目前处于 2.1.1(并且正在快速移动......)
-
免责声明:我不熟悉传统的 iPython —— 只有 Jupyter 以及它在 JSON 文件中为 Python / Spark / 其他任何东西使用“内核”配置的方式(就像一个显示在您的链接中)。因此,我不完全理解你试图用那些试图以硬方式配置 Spark 的 Python 代码做什么。 但是错误消息建议您应该设置
os.environ['PYSPARK_PYTHON'] = '/wheverer/is/your/anaconda/python3.5'(是的,您用于运行该脚本的同一可执行文件的完整路径...这不是您PATH中的默认python,很明显) -
@SamsonScharfrichter:感谢您的评论。我也试过 2.1.0。但仍然收到此错误。我在 jupyter notebook 中指定了这些环境变量,而不是在系统中。另外,我尝试了“PYSPARK_PYTHON”选项。但是还是不行。
-
内核不是“系统”,它只是一个用于启动特定运行时环境的配置文件...为 Spark 设置“系统”将在
$SPARK_HOME/conf/spark-env.sh和export PYSPARK_PYTHON=/wheverer/is/your/anaconda/python3.5 -
@SamsonScharfrichter:感谢 Samson 的回答!我会测试它并让你知道。您可以将您的评论放在答案中。我会将其标记为已回答。
标签: apache-spark pyspark anaconda