pyspark df中每个组的连续行之间的日期差

fslejnso  于 2023-10-23  发布在  Apache
关注(0)|答案(1)|浏览(126)

我有一个pyspark df排序的基础上,为每个组的日期如下-

现在,在这个框架中,我想创建一个新的日期差异列,它将给予每个组的两个连续日期之间的日期差异,如下所示-

我试过了-

我也试过这个-

两者都抛出了相同的错误,如下所示:

gajydyqb

gajydyqb1#

如果将日期格式更改为yyyy-MM-dd,代码将按预期工作。
检查下面的代码

WITH source AS (
  SELECT 
    a, 
    b,
    group_name,
    to_date(date,'MM/dd/yyyy') as date,
    order
  FROM VALUES 
  (1, 4, 'GFG1', '08/01/2000', 1),
  (1, 4, 'GFG1', '10/01/2000', 2),
  (1, 4, 'GFG1', '12/01/2000', 3),
  (2, 8, 'GFG2', '06/02/2000', 1),
  (4, 5, 'GFG3', '05/03/2000', 1),
  (4, 5, 'GFG3', '12/03/2000', 2)
  AS (a, b, group_name, date, order)
)
SELECT 
  a, 
  b, 
  group_name, 
  date, 
  order, 
  (DATE_DIFF(date, LAG(date, 1) OVER(PARTITION BY group_name ORDER BY date))) AS date_difference
FROM source

相关问题