【发布时间】:2021-06-14 22:12:04
【问题描述】:
我有这个有 6 列的表,我想根据“记录”字段按“ID1”和“ID2”对行进行分组。我的记录字段是“IN”或“OUT”,它们按日期排序。
这是我的输入样本...
data = [("ACC.PXP","7246","2020-02-24T14:49:00",None,None,'IN'),
("ACC.PXP","7246","2021-03-09T08:20:00","Hospital","Foundation","OUT"),
("ACC.PXP","7246","2021-04-05T17:17:00","Hospital","Foundation","IN")
]
df = spark.createDataFrame(data=data,schema=['ID1','ID2','date','type','name','record'])
df.show(truncate=False)
+-------+----+-------------------+--------+----------+------+
|ID1 |ID2 |date |type |name |record|
+-------+----+-------------------+--------+----------+------+
|ACC.PXP|7246|2020-02-24T14:49:00|null |null |IN |
|ACC.PXP|7246|2021-03-09T08:20:00|Hospital|Foundation|OUT |
|ACC.PXP|7246|2021-04-05T17:17:00|Hospital|Foundation|IN |
这就是我想要的结果
data2 = [("ACC.PXP","7246","2020-02-24T14:49:00",None,None, "2021-03-09T08:20:00","Hospital","Foundation"),
("ACC.PXP","7246","2021-04-05T17:17:00","Hospital","Foundation", None,None,None)
]
df2 = spark.createDataFrame(data=data2,schema=['ID1','ID2','date','type','name','date1','type1','name1'])
df2.show(truncate=False)
+-------+----+-------------------+--------+----------+-------------------+--------+----------+
|ID1 |ID2 |date |type |name |date1 |type1 |name1 |
+-------+----+-------------------+--------+----------+-------------------+--------+----------+
|ACC.PXP|7246|2020-02-24T14:49:00|null |null |2021-03-09T08:20:00|Hospital|Foundation|
|ACC.PXP|7246|2021-04-05T17:17:00|Hospital|Foundation|null |null |null |
+-------+----+-------------------+--------+----------+-------------------+--------+----------+
【问题讨论】:
-
@sammywemmy 你知道如何解决这个问题吗?
-
嗨@ScootCork 我在stackoverflow.com/questions/57435858/… 看到了您的回答,我的问题与您的回答相似。你觉得你能帮上忙吗?谢谢
标签: apache-spark pyspark apache-spark-sql