我正在使用jupyter笔记本来尝试火花。
在我的笔记本中,我尝试了一个Kmean:
from pyspark.ml.clustering import KMeans
from sklearn import datasets
import pandas as pd
spark = SparkSession\
.builder\
.appName("PythonKMeansExample")\
.getOrCreate()
iris = datasets.load_iris()
pd_df = pd.DataFrame(iris['data'])
spark_df = spark.createDataFrame(pd_df, ["features"])
estimator = KMeans(k=3, seed=1)
一切顺利,然后我适合模特:
estimator.fit(spark_df)
我收到了一个错误:
16/08/16 22:39:58 ERROR Executor: Exception in task 0.2 in stage 0.0 (TID 24)
java.io.IOException: Cannot run program "jupyter": error=2, No such file or directory
Caused by: java.io.IOException: error=2, No such file or directory
寻找Jupyter的火花在哪里? 如果我可以使用jupyter笔记本,为什么不能找到它? 该怎么办?..
答案 0 :(得分:2)
self.pythonExec = os.environ.get("PYSPARK_PYTHON", 'python')
所以我认为这个错误是由env变量PYSPARK_PYTHON
引起的,它表示每个spark节点的python位置,当pyspark启动时,来自sys env的PYSPARK_PYTHON
将被注入所有sparknodes,这样
可以通过
解决export PYSPARK_PYTHON=/usr/bin/python
是diff节点上的相同版本。然后开始:
pyspark
如果群集的local和diff节点之间存在python的diff版本,则会发生另一个版本冲突错误。
您使用的交互式python版本应与群集中的其他节点版本相同。