我尝试将多个列追加到一个列中,如下所示:输入
A | B | C | D | E aa | bb | cc | dd | null
输出量
A | B | C | D | E | combine aa | bb | cc | dd | null | [A: aa, B: bb, C: cc, D: dd, E: null]
flvlnr441#
因为需要string数组,所以需要填充null并将字符串串串接起来:
df.fillna( 'null' ).withColumn( 'combine', func.array([func.concat_ws(': ', col, val) for col, val in [(func.lit(col), func.col(col)) for col in df.columns]]) ).show(1, False) +---+---+---+---+----+-------------------------------------+ |A |B |C |D |E |combine | +---+---+---+---+----+-------------------------------------+ |aa |bb |cc |dd |null|[A: aa, B: bb, C: cc, D: dd, E: null]| +---+---+---+---+----+-------------------------------------+
1条答案
按热度按时间flvlnr441#
因为需要string数组,所以需要填充null并将字符串串串接起来: