pyspark - Pyspark 查看第一行和第二行值并按顺序更新数据
问题描述
在 pyspark 中假设我们有三列 Start_date
, duration
, End_date
。我如何查看第一行end_date
和第二行Start_date
。如果第二行start_date
大于第一行结束日期,则不执行任何操作,否则如果第一行End_date
小于第二行,Start_date
则start_date
用第一行替换第二行end_date
,并将第二行的持续时间添加到第二行start_date
并用新值替换end_date
第二行。并完成一组ID。
解决方案
使用窗口lag/lead
函数 partitionBy id
, orderBystart_date
将第一行end_Date
与第二行进行比较start_date
。
- 使用
when otherwise
带有datediff
函数的语句来计算列的日期差异duration
。
推荐阅读
- regex - 如何在正则表达式中获取年龄
- java - 如何从外部服务收集 Java Stream 内的数据?
- react-native - 如何在 react-native 中获取组件(元素)的 id
- django - How do I implement a machine learning model trained by python to a webpage?
- java - 在java中的二叉树递归函数中存储一个计数器
- javascript - 查找用于网页的 JSON 数据的来源
- driver - 我正在处理 win 10 x86 中的 PassThrough 驱动程序示例,但它不使用 KdPrint 打印任何内容。为什么?
- javascript - 解析错误:Unexpected Token : after $or
- node.js - 在非空 MongoDB 集合中找不到任何条目
- javascript - Expressjs:按下按钮时的运行方法