4

나는 공식 문서 웹 사이트에서 pyspark.ml 예를 복사하고 정의되지 않은 : http://spark.apache.org/docs/latest/api/python/pyspark.ml.html#pyspark.ml.Transformerpyspark은 : 나가서 설명하자면 NameError : 이름 '스파크'는

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 

예제를 실행하려면 어떤 추가 구성/변수를 설정해야합니까?

+0

sqlContext가 변경되었습니다. 감사! – Edamame

답변

8

당신이 createDataFrame()를 호출하기 때문에, 당신은이 작업을 수행 할 필요가 : 대신의

df = sqlContext.createDataFrame(data, ["features"]) 

:

df = spark.createDataFrame(data, ["features"]) 

sparksqlContext 거기 서있다. 일반적으로


, 어떤 사람들은 작동하지 않았다, 그래서 만약 sc로, 당신은 시도 할 수 있습니다

df = sc.createDataFrame(data, ["features"]) 
+0

sc를 사용하면 작동하지 않습니다. 그러나 sqlContext를 사용하면 작동합니다. 예상 되나요? – Edamame

+0

예 @Eame, 그것은 모두 물건을 가져 오는 방법에 달려 있습니다. :) – gsamaras

5

당신의 시작에

from pyspark.context import SparkContext 
from pyspark.sql.session import SparkSession 
sc = SparkContext('local') 
spark = SparkSession(sc) 

을 추가 할 수 있습니다 코드를 사용하여 SparkSession을 정의하면 spark.createDataFrame()이 작동합니다.