2017-10-18 75 views
0

在一些星火代碼得到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 –

回答

0

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

所以你所要做的就是你已經擁有的session實例。

+0

謝謝!我目前使用的是Spark 2.2.0,並且是新的。 JavaSparkContext比SparkSession有優勢嗎?或者JavaSparkContext將來會在某個時候貶值? –

0

終於找到了解決辦法。

SparkSession spark = SparkSession 
        .builder() 
        .appName("SampleApp") 
        .master("local") 
        .enableHiveSupport() 
        .getOrCreate(); 

JavaSparkContext jsc = new JavaSparkContext(spark.sparkContext());