2016-08-13 74 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