web-dev-qa-db-ja.com

spark「名前 'sqlContext'が定義されていません」と教えてください。なぜsqlContextを使用できますか?

私はspark-mlの例を実行しようとしていますが、

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

なぜこれが起こったのですか?どうすれば解決できますか?

7
Liu Chong

Apache Spark 1.x行を使用している場合(つまり、Apache Spark 2.0の前))、sqlContextにアクセスするには、 sqlContext;をインポートするには.

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

Apache Spark 2.0を使用している場合は、Spark Session代わりに直接。したがって、あなたのコードは

training = spark.createDataFrame(...)

詳細については、 Spark SQLプログラミングガイド を参照してください。

16
Denny Lee