当数组大小变化时,将数组转换为hive中的列

时间:2014-11-26 04:34:40

标签: hadoop hive hiveql

这是我想要用来生成一些数据的表的架构:

房屋表: data,created_at

示例行:

{attR1位, attR2位, [{type:car,quantity:1},{type:bike,quantity:2}], attr3, [{id:room1id},{id:room2id},{id:room3id}]},' 2014-11-1'

我必须沿着房间爆炸,以便我的结果如下:

room1id attr1 attr2

room2id attr1 attr2

room3id attr1 attr2

为此,我使用以下查询

select r.id,h.data.attr1,h.data.attr2 from houses h lateral view explode(h.data.rooms) table as r

这很好用。现在,我需要以下列格式提供有关附加到我的结果的车辆的信息:

  

id A1 A2 car_quantity bike_quantity

     

room1id attr1 attr2 1 2

     

room2id attr1 attr2 1 2

     

room3id attr1 attr2 1 2

我如何实现这一目标?我想到的是循环车辆,然后有一个类型的车辆,但我无法找到如何在蜂巢中这样做。在车辆上方爆炸的侧视图是没有用的,因为它返回6排。该车辆阵列中的元素数量可以变化(可以是0,1,2),但它总是类型为汽车或自行车。

0 个答案:

没有答案