我正在使用Spark SQL(我提到它在Spark中,以防对SQL语法有影响 - 我还不太确定),我有一个表格,我试图重新构造它,但我卡在了同时转置多列的步骤。
基本上我的数据看起来像:
userId someString varA varB
1 "example1" [0,2,5] [1,2,9]
2 "example2" [1,20,5] [9,null,6]
我希望同时展开变量varA和varB(长度始终保持一致),以便最终输出如下:
userId someString varA varB
1 "example1" 0 1
1 "example1" 2 2
1 "example1" 5 9
2 "example2" 1 9
2 "example2" 20 null
2 "example2" 5 6
但是我似乎只能在一个命令中使用单个的 explode(var) 语句,如果我尝试链接它们(例如,在第一个 explode 命令之后创建临时表),那么我显然会得到大量重复且不必要的行。
非常感谢!
arrays_zip
函数可以应用于多个列。 - haimco