我正在从官方文档网站复制pyspark.ml的示例:http://spark.apache.org/docs/latest/api/python/pyspark.ml.html#pyspark.ml.Transformer
data = [(Vectors.dense([0.0, 0.0]),), (Vectors.dense([1.0, 1.0]),),(Vectors.dense([9.0, 8.0]),), (Vectors.dense([8.0, 9.0]),)]df = spark.createDataFrame(data, ["features"])kmeans = KMeans(k=2, seed=1)model = kmeans.fit(df)
然而,上面的示例无法运行,并给出了以下错误:
---------------------------------------------------------------------------NameError Traceback (most recent call last)<ipython-input-28-aaffcd1239c9> in <module>() 1 from pyspark import * 2 data = [(Vectors.dense([0.0, 0.0]),), (Vectors.dense([1.0, 1.0]),),(Vectors.dense([9.0, 8.0]),), (Vectors.dense([8.0, 9.0]),)]----> 3 df = spark.createDataFrame(data, ["features"]) 4 kmeans = KMeans(k=2, seed=1) 5 model = kmeans.fit(df)NameError: name 'spark' is not defined
需要设置哪些额外的配置/变量来运行这个示例?
回答:
由于您调用的是createDataFrame(),您需要这样做:
df = sqlContext.createDataFrame(data, ["features"])
而不是这样:
df = spark.createDataFrame(data, ["features"])
spark
在这里代表的是sqlContext
。
一般来说,有些人将其称为sc
,所以如果上述方法不起作用,您可以尝试:
df = sc.createDataFrame(data, ["features"])