删除表中的所有行PySpark代码

vulvrdjw  于 2023-01-29  发布在  Spark
关注(0)|答案(1)|浏览(192)

我在重复数据删除问题上得到了帮助,我必须用Pyspark删除数据块中的重复行。
我执行代码的 Dataframe 如下所示:
| 身份证|克雷登|下沉修改打开|标题|卡尔型|
| - ------|- ------|- ------|- ------|- ------|
| 型号:e64650d3 - 94fb-ec11 - 82e6 - 0022481b14fc|2022年7月4日|2023年1月16日14时37分14秒|合伙人|企业|
| 8b97aa35 - 1d81-e811-a95c-00224800c9及以下版本|2018年7月6日|2023年1月16日14时37分14秒|合伙人|企业|
| 型号:bd97aa35 - 1d81-e811-a95c-00224800c9ff|2018年7月6日|2023年1月17日18时08分12秒|合伙人|企业|
| 42b5f518 - 1d81-e811-a95c-00224800c9及以下型号|2018年7月6日|2023年1月17日18时08分12秒|合伙人|企业|
| 8943 - 000d3a870a5b型柴油机|二○二一年十二月三十日|2023年1月16日14时37分14秒|合伙人|基本|
| 2d51010f-1d81-e811-a95c-00224800c9及以下型号|2018年7月6日|2023年1月16日14时37分14秒|合伙人|企业|
| 2007年2月1日至40日-电子邮件地址5-电子邮件地址811-a96b-00224800|2018年8月22日|2023年1月16日14时37分14秒|合伙人|企业|
| 编号3320875 - 1e81-e811-a95c-00224800编码97|2018年7月6日|2023年1月17日18时08分12秒|合伙人|企业|
| 10055a-1d81-e811-a95c-00224800c9页以下|2018年7月6日|2023年1月16日14时37分14秒|合伙人|企业|
| 81cf613f-1e81-e811-a95c-00224800电子元件|2018年7月6日|2023年1月17日18时08分12秒|合伙人|企业|
| 型号:fb50010f-1d81-e811-a95c-00224800c9ff|2018年7月6日|2023年1月16日14时37分14秒|合伙人|企业|
| 型号:AF4A3B88 - 1D81-E811-A95C-00224800C4F1|2018年7月6日|2023年1月16日14时37分14秒|合伙人|企业|
| 0551010f-1d81-e811-a95c-00224800c9及以下版本|2018年7月6日|2023年1月16日14时37分14秒|合伙人|企业|
| 8c20f753 - 5a78-e811-a95b-00224800c3e8型柴油机车|2018年6月25日|2023年1月16日14时37分14秒|合伙人|企业|
| 编号:e597aa35 - 1d81-e811-a95c-00224800c9ff|2018年7月6日|2023年1月16日14时37分14秒|合伙人|企业|
| 00224800c9f4型号|2019年2月26日|2023年1月16日14时37分14秒|合伙人|企业|
| 3315cd94 - 1d81-e811-a95c-00224800c4f1型号|2018年7月6日|2023年1月16日14时37分14秒|合伙人|企业|
| 151ca1a8-a586-e811-a95c-00224800c4f1型柴油机|2018年7月13日|2023年1月16日14时37分14秒|合伙人|企业|
| 55ce798d-2081-e811-a95c-00224800cc97型柴油机车|2018年7月6日|2023年1月17日18时08分12秒|合伙人|企业|
| 55ce798d-2081-e811-a95c-00224800cc97型柴油机车|2018年7月6日|2023年1月16日13时37分09秒|合伙人|企业|
| 6fa9fe08 - 1d81-e811-a95c-00224800c9及以下型号|2018年7月6日|2023年1月16日14时37分14秒|合伙人|企业|
| 8197aa35 - 1d81-e811-a95c-00224800c9及以下版本|2018年7月6日|2023年1月16日14时37分14秒|合伙人|企业|
| 4151010f-1d81-e811-a95c-00224800c9及以下版本|2018年7月6日|2023年1月16日14时37分14秒|合伙人|企业|
| 74cf613f-1e81-e811-a95c-00224800电子元件|2018年7月6日|2023年1月16日14时37分14秒|合伙人|企业|
Pyspark代码如下所示:
PySpark如下所示:

from pyspark.sql.window import Window
from pyspark.sql.functions import row_number

df2 = partdf.withColumn("rn", row_number().over(Window.partitionBy("Id","CreatedOn").orderBy("SinkModifiedOn")))
df3 = df2.filter("rn = 1").drop("rn")

执行完代码后,绝对不会返回任何行。
有人能看一下代码吗?让我知道为什么在重复数据删除后没有返回行?
我的猜测是,这与SinkModified有关

zpgglvta

zpgglvta1#

使用dropDuplicates删除重复行:

df = partdf.dropDuplicates(subset=['Id', 'createdon', 'SinkModifiedOn', 'caltype'])

或者
在这个具体例子中,简单地说:

partdf.drop_duplicates()

相关问题