我有一个如下所示的数据帧:
group value
B 2
B 3
A 5
A 6
现在我需要根据组减去行。 即 2-3 和 5-6。 转换后,它应该看起来像这样。
group value
B -1
A -1
我尝试了下面的代码,但无法解决我的情况。
val df2 = df1.groupBy("Group").agg(first("Value")-second(col("Value")))
import org.apache.spark.sql.expressions.Window
val df2 = df1.select("group", "value", $"value" - lead("value").over(Window.partitionBy("group").orderBy("value")))
我猜您正在尝试按顺序减去两个相邻的值。
这对
我有用。
val df2 = df1.groupBy("Group").agg(first("Value").minus(last(col("Value"))))