Внешняя таблица 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' = '');
Другие вопросы по тегам