Как использовать TestHiveContext с помощью Spark 2.2 - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь перейти на Spark 2.2 с версии Spark 1.6. Существующие модульные тесты зависят от определенного 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)

В версии 2.2, HiveContext устарело и рекомендуется использовать SparkSession.builder.enableHiveSupport. Я попытался создать новый SparkSession, используя SparkSession.builder, но не смог найти способ инициализации SparkSession, который использует TestHiveContext.

Возможно ли это сделать или я должен изменить свой подход?

1 Ответ

0 голосов
/ 22 января 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...