web-dev-qa-db-fra.com

Pourquoi spark dites-moi que "le nom 'sqlContext' n'est pas défini", comment puis-je utiliser sqlContext?

J'essaie d'exécuter un exemple de spark-ml, mais

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

ne peut pas fonctionner parce que le terminal me dit que

NameError: name 'SQLContext' is not defined

pourquoi c'est arrivé? et comment puis-je le résoudre?

7
Liu Chong

Si vous utilisez Apache Spark 1.x (c'est-à-dire avant Apache Spark 2.0), pour accéder à sqlContext, vous aurez besoin de pour importer le sqlContext; ie.

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

Si vous utilisez Apache Spark 2.0, vous pouvez simplement Spark Session directement à la place. Par conséquent, votre code sera

training = spark.createDataFrame(...)

Pour plus d'informations, reportez-vous au Spark SQL Programing Guide .

16
Denny Lee