如何使用Spark 2.2使用TestHiveContext

时间:2019-01-22 12:59:45

标签: scala apache-spark hive

我正在尝试从Spark 1.6升级到Spark 2.2。现有的单元测试取决于使用HiveContext初始化的定义的TestHiveContext

val conf = new SparkConf().set("spark.driver.allowMultipleContexts", "true")

val sc = new SparkContext("local", "sc", conf)
sc.setLogLevel("WARN")
val sqlContext = new TestHiveContext(sc)

在spark 2.2中,不建议使用HiveContext,建议使用SparkSession.builder.enableHiveSupport。我尝试使用SparkSession创建一个新的SparkSession.builder,但是找不到使用SparkSession初始化TestHiveContext的方法。

是否可以这样做,还是应该更改方法?

1 个答案:

答案 0 :(得分:0)

HiveContext和SQLContext已由SparkSession替换,如迁移指南中所述:

  

SparkSession现在是Spark的新入口点,取代了旧的   SQLContext和

     

HiveContext。请注意,旧的SQLContext和HiveContext保留用于   向后兼容。可从以下位置访问新的目录界面   SparkSession-有关数据库和表访问的现有API,例如   listTables,createExternalTable,dropTempView,cacheTable已移动   在这里。

https://spark.apache.org/docs/latest/sql-migration-guide-upgrade.html#upgrading-from-spark-sql-16-to-20

因此,您可以使用测试配置创建一个Sparksession实例,并使用它代替HiveContext