注意:
重要的是每行必须是一个完整的JSON,一个JSON不能跨越多行,也就是说,serde不会对多行的Json有效。 因为这是由Hadoop处理文件的工作方式决定,文件必须是可拆分的,例如,Hadoop将在行尾分割文本文件。
// this will work
{ "key" : 10 }
// this will not work
{
"key" : 10
下载jar
使用之前先下载jar
如果要想在Hive中使用JsonSerde,需要把jar添加到Hive类路径中:
add jar json-serde-1.3.7-jar-with-dependencies.jar;
与数组使用
源数据
{"country":"Switzerland","languages":["German","French","Italian"]}
{"country":"China","languages":["chinese"]}
hive表:
CREATE TABLE tmp_json_array (
country string,
languages array
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
STORED AS TEXTFILE;
// 导入数据到表中
LOAD D