如何从JavaSparkContext

问题描述:

在一些星火代码得到HiveContext,我已经看到了程序员使用这样的代码来创建SparkContext如何从JavaSparkContext

SparkSession session = SparkSession 
     .builder() 
     .appName("Spark Hive Example") 
     .config("spark.sql.warehouse.dir", warehouseLocation) 
     .enableHiveSupport() 
     .getOrCreate(); 

但我一直使用这种类型的代码来创建JavaSparkContext。

​​

从代码的后半部分,有什么办法可以让我得到一个Hive上下文在Hive表上执行操作?

谢谢!

+0

此外,使用SparkSession,我不能使用parallelize()方法。任何选择?我似乎无法理解何时使用SparkSession和JavaSparkContext。 Apache Spark的Java编程指南根据需要使用两者。 http://spark.apache.org/docs/latest/rdd-programming-guide.html –

您正在使用的Spark 2.0或更高版本不再使用SQLContextSparkSessionenableHiveSupport是一个足够的替代品。

所以你所要做的就是你已经拥有的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());