gpt4 book ai didi

scala - 如何使用SCALA在Spark数据框中添加多个列

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

我有一个条件,每年必须在5个月内添加5列(到现有DF)。

现有的DF就像:

EId EName Esal
1 abhi 1100
2 raj 300
3 nanu 400
4 ram 500


输出应如下所示:

EId EName Esal Jan  Feb  March April May  
1 abhi 1100 1100 1100 1100 1100 1100
2 raj 300 300 300 300 300 300
3 nanu 400 400 400 400 400 400
4 ram 500 500 500 500 500 500


我可以使用withColumn一件一件地做,但这要花很多时间。

有没有办法我可以运行一些循环并继续添加列,直到用尽我的条件。

提前谢谢了。

最佳答案

您可以使用foldLeft。您需要为所需的列创建一个List

df.show
+---+----+----+
| id|name| sal|
+---+----+----+
| 1| A|1100|
+---+----+----+

val list = List("Jan", "Feb" , "Mar", "Apr") // ... you get the idea

list.foldLeft(df)((df, month) => df.withColumn(month , $"sal" ) ).show
+---+----+----+----+----+----+----+
| id|name| sal| Jan| Feb| Mar| Apr|
+---+----+----+----+----+----+----+
| 1| A|1100|1100|1100|1100|1100|
+---+----+----+----+----+----+----+


因此,基本上发生的是,您折叠创建的序列,同时从原始数据帧开始并继续遍历列表时应用转换。

关于scala - 如何使用SCALA在Spark数据框中添加多个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48114167/

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