我有半结构化数据,如下所示:
col1 col2 col3 col4
1 2 3 [name#aa, address#[perminentaddress#abc,currentaddress#xyg]]
5 9 8 [address#[perminentaddress#dev,currentaddress#pqr],name#bb]
3 4 9 [name#cc,mobile#111,id#66 address#[perminentaddress#abc,currentaddress#xyg]]
前三列是固定的,第四列可以包含键值对的任何未知数据。键值对可以嵌套,如上例所示。最重要的是,第4列中的键位置不固定,可以有无限数量的键。
是否可以使用pig / hive处理这些数据?
例如如何从以上所有行中获取currentaddress值? (请注意,键位置不固定,地址键有嵌套键)
感谢。
答案 0 :(得分:1)
您可以使用嵌套的数据地图来表示第4列,请参阅http://wiki.apache.org/pig/PigLatin上的概述
然后,您就可以currentaddress
col4#'address'#'currentaddress'
了
要以这种方式表示您的数据,您可能需要编写custom load function。