我有以下sparkDataframe:
IDMONTH列1列2 A1100A22001A38002A415003A512000A616001A725002A828003A930004
我想创建一个新列,基于列2给出的动态延迟,我们称之为“dif\u column1”。所需输出为:
IDMONTH列1列2如果列1A110000A22001100A38002700A4150031400A5120000A616001400A750021300A8280031600A9300041800
我尝试过使用lag函数,但显然我只能使用一个整数和lag函数,所以它不起作用:
w = Window.partitionBy("id")
sdf = sdf.withColumn("dif_column1", F.col("column_1") - F.lag("column_1",F.col("column_2")).over(w))
1条答案
按热度按时间6psbrbz91#
您可以添加行号列,并根据行号和列2中定义的延迟进行自联接: