我想根据存在时间收集样本,并在“失败”状态中设置一个条件。我对存在3天的序列号感兴趣。但是,我不需要存在时间少于3天的正常序列号,但我想包括存在时间少于3天或正好存在时间为3天的所有失败序列号。例如,C在1月3日失败。因此,我需要将序列号C的1月1日和2日包含在新样本中。序列号D在1月4日失败,因此我需要序列号D的1月3日、2日和1日数据。对于序列号A和B,我需要序列号D的5日、4日和5日数据。和1月3日的数据,共3天。我没有E和F,因为它们比3天的健康观察结果更年轻。总之,我需要实际失效前3天的失效样本和最近3天的健康观察结果。
url="https://gist.githubusercontent.com/JishanAhmed2019/6625009b71ade22493c256e77e1fdaf3/raw/8b51625b76a06f7d5c76b81a116ded8f9f790820/FailureSample.csv"
from pyspark import SparkFiles
spark.sparkContext.addFile(url)
df=spark.read.csv(SparkFiles.get("FailureSample.csv"), header=True,sep='\t')
当前格式:
预期样品:
1条答案
按热度按时间xbp102n01#
对我来说,描述有点棘手,我不确定我是否理解正确
我试着用窗口函数来做,我能够得到类似的结果,但我不确定这段代码是否足够好
输出为:
在输出中,只有顺序不同,记录与示例输出中的记录相同