为什么 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

为什么会这样?我该如何解决?

如果您使用的是 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 编程指南。

from pyspark.sql import SparkSession,SQLContext
spark = SparkSession.builder.appName("Basics").getOrCreate()
sc=spark.sparkContext
sqlContext = SQLContext(sc)
df = sqlContext.range(0,10)

上面的代码段将解决您的问题。

相关内容

  • 没有找到相关文章