Загрузить строковые данные, которые не имеют кавычек в Hive - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь загрузить некоторые тестовые данные в простую таблицу Hive.Данные разделяются запятыми, но отдельные элементы не заключаются в двойные кавычки.Я получаю ошибку из-за этого.Как мне сказать Hive не ожидать, что поля varchar будут заключены в кавычки.Добавление кавычек в поля varchar вручную невозможно, поскольку входной файл, который я пытаюсь использовать, содержит тысячи записей.Пример запроса и данные ниже.

create table mydatabase.flights(FlightDate varchar(10),Airline int,FlightNum int,Origin varchar(4),Destination varchar(4),Departure varchar(4),DepDelay double,Arrival varchar(4),ArrivalDelay double,Airtime double,Distance double) row format delimited;

insert into mydatabase.flights(FlightDate,Airline,FlightNum,Origin,Destination,Departure,DepDelay,Arrival,ArrivalDelay,Airtime,Distance)
values(2014-04-01,19805,1,JFK,LAX,0854,-6.00,1217,2.00,355.00,2475.00);

При вставленном выше запросе выдается сообщение об ошибке.Это работает нормально, если я заключаю поля varchar в кавычки.

Error while compiling statement: FAILED: ParseException line 11:11 mismatched input '-' expecting ) near '2014' in value row constructor

Я загружаю данные, используя следующий запрос

load data inpath '/user/alpsusa/hive/flights.csv' overwrite into table mydatabase.flights;

После загрузки я вижу только первое загружаемое поле,Остальные все имеют значение NULL.

enter image description here

Пример данных

2014-04-01,19805,1,JFK,LAX,0854,-6.00,1217,2.00,355.00,2475.00
2014-04-01,19805,2,LAX,JFK,0944,14.00,1736,-29.00,269.00,2475.00
2014-04-01,19805,3,JFK,LAX,1224,-6.00,1614,39.00,371.00,2475.00
2014-04-01,19805,4,LAX,JFK,1240,25.00,2028,-27.00,264.00,2475.00
2014-04-01,19805,5,DFW,HNL,1300,-5.00,1650,15.00,510.00,3784.00

Ниже приведен вывод DESCRIBE FORMATTED enter image description here enter image description here

...