gpt4 book ai didi

scala - 合并 Spark 数据框中的列

转载 作者:行者123 更新时间:2023-12-04 22:55:10 25 4
gpt4 key购买 nike

我做了一个算法,我得到了很多带有名称逻辑和数字后缀的列,我需要做coalesce但我不知道如何申请coalesce具有不同数量的列。

例子:

|id|logic_01|logic_02|logic_03|
|1 | null |a |null |
|2 | null |b |null |
|3 | c | null |null |
|4 | null | null |d |

回复:
|id|logic|
|1 | a |
|2 | b |
|3 | c |
|4 | d |

另一个例子:
|id|logic_01|logic_02|logic_03|logic_04|
|1 | null |a |null |null |
|2 | null | null |null |b |
|3 | c | null |null |null |
|4 | null | null |d |null |

回复:
|id|logic|
|1 | a |
|2 | b |
|3 | c |
|4 | d |

谢谢你的帮助。

最佳答案

首先在 coalesce 中找到要使用的所有列:

val cols = df.columns.filter(_.startsWith("logic")).map(col(_))

然后执行实际 coalesce :
df.select($"id", coalesce(cols: _*).as("logic"))

关于scala - 合并 Spark 数据框中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50959870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com