ORC с указанием сериализатора не работает
У меня есть некоторые данные в HDFS, которые были импортированы с помощью Sqoop. Данные были импортированы как ORC, а сжатие - Snappy.
Я пытаюсь создать таблицу поверх этих данных с помощью следующего оператора DDL. Однако я получаю следующую ошибку.
СБОЙ: SemanticException [Ошибка 10043]: должен быть указан либо список столбцов, либо настраиваемый сериализатор
Тем не менее, я определяю "пользовательский сериализатор", определяя ROW FORMAT SERDE and STORED AS INPUTFORMAT and OUTPUTFORMAT
ЗАЯВЛЕНИЕ DDL:
CREATE EXTERNAL TABLE test_db.my_table_orc
ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
LOCATION '/hdfs/app/DL/ORC_DATA_LOCATION'
tblproperties ("orc.compress"="SNAPPY");
2 ответа
В настоящее время Hive не может поддерживать создание таблицы ORC без указания списка столбцов в DDL. Файлы ORC содержат метаданные о столбцах, поэтому, если вы не уверены в столбцах данного файла ORC, вы можете запустить утилиту дампа файла ORC, чтобы получить ее.
- Определите столбцы таблицы.
- Нет необходимости в формате ввода / вывода.
stored as orc
достаточно.