2016-11-14 149 views
-1

我嘗試運行例如火花毫升,但爲什麼spark要告訴我「name」sqlContext'沒有定義「,我該如何使用sqlContext?

from pyspark import SparkContext 
import pyspark.sql 

sc = SparkContext(appName="PythonStreamingQueueStream")  
training = sqlContext.createDataFrame([ 
(1.0, Vectors.dense([0.0, 1.1, 0.1])), 
(0.0, Vectors.dense([2.0, 1.0, -1.0])), 
(0.0, Vectors.dense([2.0, 1.3, 1.0])), 
(1.0, Vectors.dense([0.0, 1.2, -0.5]))], ["label", "features"]) 

無法運行,因爲終端告訴我,

NameError: name 'SQLContext' is not defined 

爲什麼會這樣?我該如何解決它?

+0

因爲沒有定義。 – 2016-11-14 02:05:36

回答

4

如果您使用的是Apache Spark 1.x行(即Apache Spark 2.0之前),要訪問sqlContext,您需要導入sqlContext;即

from pyspark.sql import SQLContext 
sqlContext = SQLContext(sc) 

如果你使用Apache 2.0星火,你可以在Spark Session,而不是直接。因此,你的代碼將

training = spark.createDataFrame(...) 

欲瞭解更多信息,請參閱Spark SQL Programing Guide

+1

對不起,但它沒有解決問題(未定義的變量)並不是說這個問題是有道理的。 – 2016-11-14 02:06:31

+0

有道理 - 我在編輯時忘記了'sqlContext'缺失。更新了回覆。 –

+0

如果它沒有被初始化,它還是不夠的。 – 2016-11-14 03:52:46

相關問題