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] 删除。
我来说两句