hive-extract动态阵列

sqserrrh  于 2021-06-24  发布在  Pig
关注(0)|答案(1)|浏览(361)

我有如下json数据。

{
  "userid": null,
  "appnumber": "9",
  "trailid": "1547383536",
  "visit": [{
      "visitNumber": "1",
      "time": "0",
      "hour": "18",
      "minute": "15"
    },
    {
      "visitNumber": "2",
      "time": "2942",
      "hour": "18",
      "minute": "15"
    }
  ]
}

我想动态提取访问数组值。
如下图所示:(管柱)

userid,appnumber| trailid | 
visit.visitnumber | visit.time | visit.hour | visit.minute | 
visit.visitnumber | visit.time | visit.hour | visit.minute

如果您看到visit数组中有2个json元素。所以我想动态提取visitnumber,time,hour,minute。有时我可能在数组中有3或5个值,所以它应该自动提取所有3或5个json(我是说动态提取)。
我要在aws上运行这个雅典娜,或者可能在Pig群。
有人能帮我处理extact问题吗?

2j4z5cfb

2j4z5cfb1#

您可以使用下面的方法,但即使在这种情况下,所有数组条目都将是不同行的一部分。

select
userid,
appnumber,
trailid,
d.visitnumber,
d.time, 
d.hour ,
d.minute
FROM table t1
LATERAL VIEW OUTER EXPLODE (visit) collection as d;

相关问题