我有一个有4列的表,一列(items)类型是array,另一列(items)类型是string。
ID | items | name | loc
_________________________________________________________________
id1 | ["item1","item2","item3","item4","item5"] | Mike | CT
id2 | ["item3","item7","item4","item9","item8"] | Chris| MN
.
.
这里,我想要非标准化的输出,比如
ID | items | name | loc
______________________________________________________
id1 | item1 | Mike | CT
id1 | item2 | Mike | CT
id1 | item3 | Mike | CT
id1 | item4 | Mike | CT
id1 | item5 | Mike | CT
id2 | item3 | Chris | MN
id2 | item7 | Chris | MN
id2 | item4 | Chris | MN
id2 | item9 | Chris | MN
id2 | item8 | Chris | MN
我不是一个HivesqlMaven,请帮助我走出这个困境。
2条答案
按热度按时间bq3bfh9z1#
我们可以使用
posexplode()
函数来实现您提到的场景,即使用多个数组列。像这样的事情会解决的:
zfycwa2u2#
试试这个:
在explode(items)中,items是存储表列,table是存储表。