улей posexplode карта тип данных - PullRequest
0 голосов
/ 15 сентября 2018

У меня есть структура данных, которая выглядит как:

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 ...} - категории под брендом (рубашки, шорты, обувь ...); (Один, два, три ...} являются внутренним идентификатором для названий брендов и (1, 2, 3 ...) являются внутренним идентификатором для названий категорий. Теперь я хотел бы развернуть его до:

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

Если есть только один столбец карты для взрыва, например, покупка_имя, я могу использовать разнесение для создания столбца имя_бренда и столбца имя_категории. Однако я пытаюсь использовать posexplode, чтобы получить переменную позиции, чтобы исключить несколько строк, которые будут сгенерированы для A001, но я обнаружил, что posexplode применим только к массивам, а не к типу данных карты.

...