如何从JavaSparkContext
问题描述:
在一些星火代码得到HiveContext,我已经看到了程序员使用这样的代码来创建SparkContext如何从JavaSparkContext
SparkSession session = SparkSession
.builder()
.appName("Spark Hive Example")
.config("spark.sql.warehouse.dir", warehouseLocation)
.enableHiveSupport()
.getOrCreate();
但我一直使用这种类型的代码来创建JavaSparkContext。
从代码的后半部分,有什么办法可以让我得到一个Hive上下文在Hive表上执行操作?
谢谢!
答
您正在使用的Spark 2.0或更高版本不再使用SQLContext
。 SparkSession
与enableHiveSupport
是一个足够的替代品。
所以你所要做的就是你已经拥有的session
实例。
+0
谢谢!我目前使用的是Spark 2.2.0,并且是新的。 JavaSparkContext比SparkSession有优势吗?或者JavaSparkContext将来会在某个时候贬值? –
答
终于找到了解决办法。
SparkSession spark = SparkSession
.builder()
.appName("SampleApp")
.master("local")
.enableHiveSupport()
.getOrCreate();
JavaSparkContext jsc = new JavaSparkContext(spark.sparkContext());
此外,使用SparkSession,我不能使用parallelize()方法。任何选择?我似乎无法理解何时使用SparkSession和JavaSparkContext。 Apache Spark的Java编程指南根据需要使用两者。 http://spark.apache.org/docs/latest/rdd-programming-guide.html –