0
我想计算Days_btwn_Shpmnt,它只是发货日期之间的天数。需要在第一个和第二个记录中计算这个值,等等。
你能帮助我如何能利用星火/斯卡拉做什么?
谢谢, 乔
我想计算Days_btwn_Shpmnt,它只是发货日期之间的天数。需要在第一个和第二个记录中计算这个值,等等。
你能帮助我如何能利用星火/斯卡拉做什么?
谢谢, 乔
可以完成火花此使用lag
功能。示例脚本展示了它如何完成。请注意,日期必须格式化为函数的yyyy-mm-dd
格式。
import org.apache.spark.sql.functions._
import org.apache.spark.sql.expressions.Window
val df = Seq((1000, "2016-01-19"), (1000, "2016-02-12"), (1000, "2016-02-18"), (1000, "2016-02-04")).toDF("product_id", "date")
val result = df.withColumn("last_date" ,lag("date", 1).over(Window.partitionBy($"product_id").orderBy($"date"))).withColumn("daysToShipMent", datediff($"date", $"last_date"))
scala> result.select("product_id", "date", "daysToShipMent").show()
+----------+----------+--------------+
|product_id| date|daysToShipMent|
+----------+----------+--------------+
| 1000|2016-01-19| null|
| 1000|2016-02-04| 16|
| 1000|2016-02-12| 8|
| 1000|2016-02-18| 6|
+----------+----------+--------------+
非常感谢你 – joesek