蜂巢爆炸地图数据类型

时间:2018-09-15 20:17:33

标签: arrays dictionary hive explode

我的数据结构如下:

ID       purchase_name        purchase_id
A001    {A: a}                {One: 1}
A002    {A: a, B: b}          {One: 1, Two, 2}
A003    {C: a}                {Three: 1}

这样想:{A,B,C ...}是品牌名称(即Nike,Adidas ...); {a,b,c ...}是品牌下的类别(衬衫,短裤,鞋子...); (一,二,三...}是品牌名称的内部ID,而(1、2、3 ...)是类别名称的内部ID。现在,我将其分解为:

ID      Brand_name Brand_id Category_name Category_id
A001    A          One      a             1
A002    A          One      a             1
A002    B          Two      b             2
A003    C          Three    a             1

如果只有一个地图列要爆炸,例如采购名称,我能够使用explode生成brand_name列和category_name列。但是,我试图使用posexplode获取位置变量,以消除将为A001生成的多行,但是我发现posexplode仅适用于数组,而不适用于map数据类型。

0 个答案:

没有答案