如何从 JavaSparkContext 获取 HiveContext

How to get HiveContext from JavaSparkContext

在一些Spark代码中,看到有程序员使用这样的代码来创建SparkContext

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

但我一直都是用这样的代码来创建JavaSparkContext。

SparkConf sparkConf = new SparkConf().setAppName("Simple App").setMaster("local");
JavaSparkContext spark = new JavaSparkContext(sparkConf);

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

谢谢!

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

所以您所要做的就是 session 您已经拥有的实例。

终于找到解决办法了。

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

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