PySpark-在所有列中拆分数组并合并为行

乔尔

PySpark中是否可以同时分解所有列中的数组/列表并将分解后的数据分别合并/压缩到行中?

列数可能是动态的,具体取决于其他因素。

从数据框

|col1   |col2   |col3   |
|[a,b,c]|[d,e,f]|[g,h,i]|
|[j,k,l]|[m,n,o]|[p,q,r]|

到数据框

|col1|col2|col3|
|a   |d   |g   |
|b   |e   |h   |
|c   |f   |i   |
|j   |m   |p   |
|k   |n   |q   |
|l   |o   |r   |
保利

这是使用rdd的一种方法flatMap()

cols = df.columns
df.rdd.flatMap(lambda x: zip(*[x[c] for c in cols])).toDF(cols).show(truncate=False)
#+----+----+----+
#|col1|col2|col3|
#+----+----+----+
#|a   |d   |g   |
#|b   |e   |h   |
#|c   |f   |i   |
#|j   |m   |p   |
#|k   |n   |q   |
#|l   |o   |r   |
#+----+----+----+

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章