我正在尝试从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
的方法。
是否可以这样做,还是应该更改方法?
答案 0 :(得分:0)
HiveContext和SQLContext已由SparkSession替换,如迁移指南中所述:
SparkSession现在是Spark的新入口点,取代了旧的 SQLContext和
HiveContext。请注意,旧的SQLContext和HiveContext保留用于 向后兼容。可从以下位置访问新的目录界面 SparkSession-有关数据库和表访问的现有API,例如 listTables,createExternalTable,dropTempView,cacheTable已移动 在这里。
因此,您可以使用测试配置创建一个Sparksession实例,并使用它代替HiveContext