我有一个数据集,如下所示:
+----+------+
|day | count|
+----+------+
| 1| 50|
| 2| 55|
| 3| 53|
+----+------+
我想要一张像这样的桌子:
+----+------+-------+
|day | count| delta |
+----+------+-------+
| 1| 50| 0|
| 2| 55| 5|
| 3| 53| -2|
+----+------+-------+
我对Scala非常陌生,下面是我正在尝试的,但它是错误的。我的prev_count
为空。
myDf.withColumn("prev_count", lag("count", 1)
.over(Window.partitionBy("day")
.orderBy("day"))).show()
val result = myDf.withColumn("change",
(myDf("count") - myDf("prev_count"))).show()
感谢您的指点。
发布于 2020-10-16 07:29:11
看起来您没有使用新的列:
val withPrevcount = myDf.withColumn("prev_count", lag("count", 1).over(Window.partitionBy("day").orderBy("day")))
val result = withPrevcount.withColumn("change", col("count") - col("prev_count")))
result.show()
https://stackoverflow.com/questions/64383235
复制相似问题