【问题标题】:Pyspark Looking at first row and second row value and update the data sequentiallyPyspark 查看第一行和第二行值并按顺序更新数据
【发布时间】:2020-08-09 04:51:06
【问题描述】:

在 pyspark 中假设我们有三列 Start_datedurationEnd_date。 我如何查看第一行end_date 和第二行Start_date。如果第二行 start_date 大于第一行结束日期,则不执行任何操作,否则如果第一行 End_date 小于第二行 Start_date,则将第二行 start_date 替换为第一行 end_date 并添加第二行的持续时间到start_date 并用新值替换第二行第二行的end_date。完成一组ID。

【问题讨论】:

标签: pyspark


【解决方案1】:

使用窗口 lag/lead 函数 partitionBy id,orderBy start_date 将第一行 end_Date 与第二行 start_date 进行比较。

【讨论】:

  • 我可以同时查看两行吗?使用滞后函数我知道我可以定义一个新列,但在这里我想按顺序更新结束日期。所以在一个语句中可以执行此操作。我可以写一个类似的函数吗?当 (lag 1 ,window) end_date
猜你喜欢
  • 2014-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 2013-11-29
  • 1970-01-01
相关资源
最近更新 更多