2016-11-14 10 views
-1

私は火花ミリリットルの例を実行しようとしたが、端末がなぜsparkが "name 'sqlContext'が定義されていないかを教えてください。どうすればsqlContextを使用できますか?

NameError: name 'SQLContext' is not defined 

はこれがなぜ起こったかと言われますので

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"]) 

を実行することはできませんか?どのように私はそれを解決することができますか?

+0

定義されていないためです。 –

答えて

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

申し訳ありませんが、問題を解決していません(定義されていない変数)。この質問は全く意味がありません。 –

+0

意味があります - 私の編集で 'sqlContext'が見つからなかったことを忘れてしまいました。レスポンスを更新しました。 –

+0

まだ初期化されていない場合はまだ十分ではありません。 –

関連する問題