Обновление коннектора Hortonworks Hive Warehouse и схемы - PullRequest
0 голосов
/ 26 февраля 2019

Похоже, что Hortonworks Hive Warehouse Connector до v.1.0.0 не поддерживает обновления схемы.Я пытаюсь использовать

hive
  .createTable(tableName)
  .ifNotExists()
  .column(name, type)
  .create()

, если таблица существует , но с другой схемой и ничего не происходит.А потом я пытаюсь написать DataFrame с другой схемой.

dataFrame
  .write
  .format("com.hortonworks.spark.sql.hive.llap.HiveWarehouseConnector")
  .save()

и тоже ничего не происходит.Я ожидаю, что AnalysisException должен быть выдан, как это делает Spark.

1 Ответ

0 голосов
/ 28 февраля 2019

Я обнаружил, что для создания таблицы HWC создается запрос ...

CREATE TABLE IF NOT EXISTS schema.table  (SERIALKEY DECIMAL(38,10),SOME STRING,SOME_OTHER STRING,...) STORED AS ORC

он выполняется только в том случае, если таблица не существует и схемы не сравниваются.Затем делается запрос на вставку данных ...

LOAD DATA INPATH '/tmp/20190222040853-6ab51b3c-a459-41df-9739-38bf5efb8da1' INTO TABLE schema.table

, которые на основании документации ...

НИКАКОЙ проверкой данных по схеме не занимается команда загрузки.

В результате, если схема изменяется, HWC делает возможным запись этого фрейма данных в хранилище Hive, где старая таблица с другой схемой хранит данные без каких-либо исключений.

...