我将以下嵌套的JSON格式数据存储为syslog,我需要使用HiveQL进行查询并转换为CSV文件(用于显示图形):
"logAggregate": {"name-1":{"time":"74","count":"1"},"name-2":{"time":"2","count":"1"},"name-3 {"time":"2","count":"5"},"name-4":{"time":"22","count":"1"},
。
。
。// and so on..
。}
我正在寻找的输出格式如下:
name-1 time
name-2 time
name-3 time
.
.
. // so on
我对Hive比较新,所以不确定我应该如何解析这个JSON数据。 我试着摆弄Lateral View和json_tuple但是徒劳无功!
任何帮助都会得到很多帮助! ORZ
答案 0 :(得分:0)
查看此博客条目(http://brickhouseconfessions.wordpress.com/2014/02/07/hive-and-json-made-simple/),其中介绍了使用Brickhouse(http://github.com/klout/brickhouse)中提供的JSON UDF。
对于您的具体情况,您可能希望解析为地图,然后在地图上进行爆炸。
SELECT key,
map_index( value, "time") as time_value
FROM my_table
LATERAL VIEW explode_map( from_json( json, 'map<map<string,string>>') ) kv1 as k, v;