2016-08-13 2 views
0

Я пытаюсь импортировать файл в улей. Данные выборки следующим образомУлей не принимает значения

1::Toy Story (1995)::Animation|Children's|Comedy 
2::Jumanji (1995)::Adventure|Children's|Fantasy 
3::Grumpier Old Men (1995)::Comedy|Romance 
4::Waiting to Exhale (1995)::Comedy|Drama 

Моя таблица декларации заключается в следующем

create table movies(id int,title string,genre string) row format delimited fields terminated by '::'; 

Но после загрузки данных, моя таблица показывает данные для первых двух только полей.

Total MapReduce CPU Time Spent: 1 seconds 600 msec 
OK 
1  Toy Story (1995)  
2  Jumanji (1995) 
3  Grumpier Old Men (1995) 
4  Waiting to Exhale (1995)  
Time taken: 22.087 seconds 

Может кто-нибудь помочь мне в том, почему это происходит или как отлаживать это.

ответ

0

улей строка разделитель будет принимать только один символ по умолчанию, так как у вас есть два символа '::' Пожалуйста, попробуйте создать таблицу с MultiDelimitSerDe

Запрос:

CREATE TABLE movies (id int,title string,genre string) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe' 
WITH SERDEPROPERTIES ("field.delim"="::") 
STORED AS TEXTFILE; 

Выход:

hive> select * from movies; 
OK 
1 Toy Story (1995) Animation|Children's|Comedy 
2 Jumanji (1995) Adventure|Children's|Fantasy 
3 Grumpier Old Men (1995) Comedy|Romance 
4 Waiting to Exhale (1995) Comedy|Drama 

См. Аналогичный пост: Load data into Hive with custom delimiter

Смежные вопросы