Внешняя таблица HIVE - установите пустые строки в NULL
В настоящее время у меня есть экземпляр HIVE 0.7 на Amazon EMR. Я пытаюсь создать копию этого экземпляра на новом кластере EMR, используя Hive 0.11.
В моем экземпляре 0.7 у меня есть внешняя таблица, которая установит пустые строки в NULL. Вот как я создаю таблицу:
CREATE EXTERNAL TABLE IF NOT EXISTS tablename
(column1 string,
column2 string)
PARTITIONED BY (year STRING, month STRING, day STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
TBLPROPERTIES ('serialization.null.format' = '');
Данные добавляются в таблицу следующим образом:
ALTER TABLE tablename
ADD PARTITION (year = '2013', month = '10', day='01')
LOCATION '/location_in_hdfs';
Это прекрасно работает в 0,7, но в 0,11 он не оценивает мои пустые строки как NULLS. Интересно, что при создании нормальной таблицы с теми же данными и определением таблицы пустые строки оцениваются как NULL, как и ожидалось.
Есть ли другой способ сделать это с внешней таблицей в 0.11?
1 ответ
Hive свойства раздела по умолчанию переопределяют свойства таблицы. Включите свойства SERDE в свой оператор alter:
ALTER TABLE tablename ADD PARTITION (year = '2013', month = '10', day='01') SET
SERDEPROPERTIES ('serialization.null.format' = '');