scala - Groupby and Subtract Spark Scala
问题描述
I have a dataframe like below:
group value
B 2
B 3
A 5
A 6
now i need to subtract rows based on group. i.e 2-3 and 5-6. after transformation it should look like this.
group value
B -1
A -1
i tried below code but couldnt solve my case.
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")))
我猜你想用顺序减去两个相邻的值。
推荐阅读
- css - 阻止 Bootstrap 列垂直列出
- sql - 如何在 SQL 汇总中获得总计百分比?
- java - Jooq在存储后没有返回主键,在sqlite上
- asp.net - Visual Studio 2008 ASP.NET 网站错误:Handles 子句需要在包含类型或其基类型之一中定义的 WithEvents 变量
- r - R - 将(周期)长格式时间序列转换为宽格式小时时间序列
- javascript - 无法绑定到 Angular 组件的 Bootstrap 模式中动态添加的输入
- grails - Grails Fixtures 替代品
- python - 创建一系列数字随机改组的二维数组的有效方法
- scala - 在流式传输 Scala 时将 List[List[String]] 转换为 Spark 数据帧
- javascript - Vue.js2 - 数组包含 __ob__ :观察者