【发布时间】:2021-03-30 09:14:11
【问题描述】:
有没有办法在 pyspark 中过滤并获得最大结果?我在下面尝试了这个,但它只能让我得到 rownum 小于 2 的行。
df2 = df.withColumn("rownum",row_number().over(Window.partitionBy("SID", "Start Date", "End Date").orderBy("SID"))).filter(col("rownum")<2).orderBy("SID").drop("rownum")
我在下面有这个数据框。
+--------+----------+----------+--------+--------- -+ |SID |开始日期 |结束日期 |CID |添加日期| +--------+----------+----------+--------+--------- -+ |1001 |2021-04-05|2021-04-05|1002 |2021-03-22| |1001 |2021-03-31|2021-03-31|1002 |2021-03-22| |1004 |2021-04-05|2021-04-05|1003 |2021-03-22| |1005 |2021-04-06|2021-04-06|1006 |2021-03-22| |1001 |2021-04-05|2021-04-05|1002 |2021-03-30| |1001 |2021-03-31|2021-03-31|1006 |2021-03-30| +--------+----------+----------+--------+--------- -+这是我的预期结果。
+--------+----------+----------+--------+--------- -+ |SID |开始日期 |结束日期 |CID |添加日期| +--------+----------+----------+--------+--------- -+ |1004 |2021-04-05|2021-04-05|1003 |2021-03-22| |1005 |2021-04-06|2021-04-06|1006 |2021-03-22| |1001 |2021-04-05|2021-04-05|1002 |2021-03-30| |1001 |2021-03-31|2021-03-31|1006 |2021-03-30| +--------+----------+----------+--------+--------- -+【问题讨论】:
标签: apache-spark pyspark apache-spark-sql