2016-08-13 6 views
0

Ich versuche, eine Datei in den Stock zu importieren. Die Beispieldaten sind wie folgtBienenstock nimmt keine Werte

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 

Meine Tabellendeklaration ist, wie folgend

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

Aber nach dem Laden der Daten, meine Tabelle zeigt Daten für die ersten beiden Felder nur.

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 

Kann mir jemand helfen, warum das passiert oder wie man dies debuggt.

Antwort

0

Hive zeilenbegrenzer wird nur ein Zeichen von Standard nehmen, da Sie zwei Zeichen '::' Bitte versuchen Sie Tabelle erstellen mit MultiDelimitSerDe

Abfrage:

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; 

Ausgang:

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 

Bitte beachten Sie ähnliche Post: Load data into Hive with custom delimiter