我的数据结构如下:
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数据类型。