1. ホーム
  2. apache-spark

[解決済み] pyspark : NameError: name 'spark' is not defined.

2022-02-24 18:05:47

質問

公式ドキュメントサイトにある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"])