В Hive, как исправить ошибку, если данные о местоположении раздела внешней таблицы отсутствуют при выборе данных? - PullRequest
0 голосов
/ 14 июля 2020

Я создал таблицу Внешняя таблица "test" с датой секционированного столбца.

из-за некоторых ошибок при импорте данных в "test". Это просто созданный каталог (каталог раздела), но не загруженный в данные , данные отсутствуют.

при выборе данных из определенного раздела, it is not showing any error it is giving zero records.

, но я хочу выдать ошибку, если данные отсутствуют при выборе, есть ли способ обработать в улье?

1 Ответ

0 голосов
/ 14 июля 2020

Вы можете заставить процесс загрузки завершиться сбоем, используя свойство для динамических c разделов в Hive, которое может управлять этим поведением во время записи. Согласно документации здесь вы можете найти

hive.error.on.empty.partition

    Default Value: false
    Added In: Hive 0.7.0

Whether to throw an exception if dynamic partition insert generates empty results.

Я не вижу эквивалента в разделах stati c, поэтому вам может потребоваться запросить этот конкретный раздел и посмотреть, пусто. Это может привести к сбою процесса загрузки (например), если количество строк меньше 1

Другой вариант при чтении - использование Hive UDF с именем assert_true, который вы можете найти здесь . Как вы можете видеть, он возвращает пустоту и имеет формат

assert_true(boolean condition)


Throw an exception if 'condition' is not true, otherwise return null (as of Hive 0.8.0). For example, select assert_true (2<1).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...