2017-08-08 59 views
0

“NULL”我有一个包含一串与相关数据(用户,位置等)的鸣叫上亚马逊DynamoDB。我通过管道输出了这个,并得到了一个json文件。 其导出为CSV文件将是一个糟糕的主意,因为许多鸣叫包含在文本字段中的逗号。随着新的蜂巢,因为我,我至少知道,加载JSON文件,我需要某种形式的SERDE。蜂巢:JSON SERDE文件返回外部表

这是我如何创建表:

create external table tablename (
id string, 
created_at string, 
followers_count string, 
geo string, 
location string, 
polarity string, 
screen_name string, 
sentiment string, 
subjectivity string, 
tweet string, 
username string) 
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' 
SAVE AS TEXTFILE ; 

我没有得到任何错误,但后来我做的:

load data inpath '/user/exam' 
overwrite into table tablename; 

(这是JSON文件的存储位置)

当我做 “select * from tablename limit 5;” 一切都来了NULL:

hive> select * from wcd.tablename limit 5; 
OK 
{ NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 
{ NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 
{ NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 
{ NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 
{ NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 

如果有人想看看有问题的文件,它的网址为:

http://www.vaughn-s.net/hadoop

任何援助将不胜感激!

+1

你可以把一些示例你的数据? – hlagos

+0

是的,有在这个职位底部的整个文件的链接;不过,如果您愿意,我可以发布snippits。 –

回答

2

的原因是因为你的JSON doesn't按照你的表定义

{"id":{"s":"894643473017561088"},"sentiment":{"s":"neutral"},"subjectivity":{"s":"0.0"},"username":{"s":"Jessi"},"geo":{"s":"None"},"location":{"s":"Valley of the sun☀ï¸"},"polarity":{"s":"0.0"},"tweet":{"s":"b\"RT @bannerite: Donald Trump's lies have consequences. We're seeing them now | Charlotte Observer #DemForce https""},"created_at":{"s":"Mon Aug 07 19:36:40 
+0000 2017"},"screen_name":{"s":"JessiAtkins06"},"followers_count":{"s":"19"}} 

尽量把每一列与作为字符串结构,例如

id struct<s:string> 
+0

我没有注意到 - 谢谢你的提示! –