我正在使用 jupyter 笔记本来尝试 spark。
一旦进入我的笔记本,我就会尝试 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
spark 在哪里寻找 Jupyter? 如果我可以使用 jupyter notebook 为什么找不到它? 怎么办?..
最佳答案
正如 https://github.com/apache/spark/blob/master/python/pyspark/context.py#L180 中的代码所说
self.pythonExec = os.environ.get("PYSPARK_PYTHON", 'python')
所以我认为这个错误是由env变量PYSPARK_PYTHON
引起的,它表示每个spark节点的python位置,当pyspark启动时,来自sys env的PYSPARK_PYTHON
将被注入(inject)所有的sparknodes,这样
可以解决
export PYSPARK_PYTHON=/usr/bin/python
diff 节点上的版本相同。然后开始:
pyspark
如果本地和集群的diff节点之间存在python的diff版本,会出现另一个version conflicts错误。
您使用的交互式python版本应与集群中其他节点的版本相同。
关于java - spark 2.0 - java.io.IOException : Cannot run program "jupyter": error=2, 没有这样的文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38984211/