У меня есть аналогичный вопрос здесь: Источник таблицы Hive, разделенный несколькими пробелы
Мои данные выглядят так:
AL, 01, 2016010700, , BEST, 0, 266N, 753W
AL, 01, 2016010706, , BEST, 0, 276N, 747W
AL, 01, 2016010712, , BEST, 0, 287N, 738W
AL, 01, 2016010712, , BEST, 0, 287N, 738W
Это означает, что мой разделитель столбцов - это «запятая плюс переменное количество пробелов».
Я попытался просто изменить field.delim
, добавив эту запятую в регулярное выражение, но это не сработало. В результате все данные помещаются в первый столбец (basin
), а все остальные столбцы равны NULL.
CREATE EXTERNAL TABLE IF NOT EXISTS default.myTable1
(
basin string
,cy string
,yyyymmddhh int
,technum_min string
,tech string
,tau string
,lat_n_s string
,lon_e_w string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe'
WITH SERDEPROPERTIES ("field.delim"=",\\s+")
LOCATION '/data';
Я использую HDP 2.5 (Hive 1.2.1).
Спасибо за любую помощь и предложения.