我有一列,我需要找出每行之间的日期差(以天为单位),按id分区。。这必须使用spark sql完成。我写了下面的代码,但不知怎么的,答案是错的。请告诉我哪里出了问题。
WindowSpec window = Window.partitionBy("id").orderBy("date_time");
Dataset<Row> resultSet = testData.withColumn("day_diff", functions.datediff(col("date_time"), functions.lag(col("date_time"), 1).over(window)));
1条答案
按热度按时间zhte4eai1#
你应该一个接一个地做。
步骤1:使用窗口功能从上一行收集日期。
步骤2:使用datediff查找差异。
多喝点可乐