2017-10-10 70 views
1

我正在使用配置單元,我需要以json格式添加數據。我使用https://github.com/rcongiu/Hive-JSON-Serde庫。它從文件加載配置單元中的數據。使用Hive-JSON-SerDe添加數據查詢

~$ cat test.json 

{"text":"foo","number":123} 
{"text":"bar","number":345} 

$ hadoop fs -put -f test.json /user/data/test.json 

$ hive 

hive> CREATE DATABASE test; 

hive> CREATE EXTERNAL TABLE test (text string) 
     ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' 
     LOCATION '/user/data'; 

hive> SELECT * FROM test; 
OK 

foo 123 
bar 345 

但我需要加載的數據來自查詢,如:

insert into table test values {"text": "abc", number: 666} 

誰知道如何做到這一點?

回答

0

SerDe真正用於從包含數據的文件中讀取數據的外部表。所以它不會幫助你直接插入json數據,並且你給出的插入查詢作爲一個例子將不起作用。我建議你應該將數據寫入你的hdfs文件,並在包含該文件的文件夾上創建一個外部表,或者解析傳入數據,以便將它插入爲列。