在创建SQLContext时,spark-shell会给出什么“警告:存在一个弃用警告”?

Vis*_*rma 3 scala apache-spark apache-spark-sql

我正在尝试使用以下命令在Spark-shell中创建SQLContext:

//To start Spark Shell:

>spark-shell

//To create object of SQLContext

>val sqlcontext = new org.apache.spark.sql.SQLContext(sc)
Run Code Online (Sandbox Code Playgroud)

我收到以下警告:

warning: there was one deprecation warning; re-run with -deprecation for details
sqlcontext: org.apache.spark.sql.SQLContext = org.apache.spark.sql.SQLContext@17e2e5d
Run Code Online (Sandbox Code Playgroud)

可能是什么原因?

Jac*_*ski 5

如果您使用的是Spark 2.0.0,则无需SQLContext自己创建单独的应用程序,因为它已经可用。

scala> spark.sqlContext
res0: org.apache.spark.sql.SQLContext = org.apache.spark.sql.SQLContext@45f32b12
Run Code Online (Sandbox Code Playgroud)

spark上面的代码也是自动创建的,并且是从Spark 2.0开始使用Spark SQL功能的推荐方法(请参见SparkSession)。

弃用警告的原因恰恰是告诉您远离SQLContext

警告:有一个弃用警告;使用-deprecation重新运行以获取详细信息

请参阅SQLContext的scaladoc,其内容如下:

在Spark 1.x中使用结构化数据(行和列)的入口点。

从Spark 2.0开始,它被SparkSession取代。但是,我们在这里保留该类是为了向后兼容。