使用pig / hive进行半结构化数据处理

时间:2014-03-13 08:13:54

标签: hadoop hive apache-pig

我有半结构化数据,如下所示:

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值? (请注意,键位置不固定,地址键有嵌套键)

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用嵌套的数据地图来表示第4列,请参阅http://wiki.apache.org/pig/PigLatin上的概述

然后,您就可以currentaddress

访问col4#'address'#'currentaddress'

要以这种方式表示您的数据,您可能需要编写custom load function