gpt4 book ai didi

java - 删除两个重复行

转载 作者:可可西里 更新时间:2023-11-01 15:01:49 26 4
gpt4 key购买 nike

同事们好。我有一个大数据集(大约 237 000 000 行)。有很多列。例如,我需要删除列名称为 userIdVTS 的所有重复项。

userId Vts moreColumn1 moreColumn2
10 150 2 3 -delete
11 160 1 6
10 150 0 1 -delete

我不擅长 SQL。尝试了来自 Internet 的不同变体,但它不起作用。

更新:

需要答案!我忘了说我用的是java。有我为 java 优化的代码:

viewingDataset.groupBy("userId", "VTS")
.count()
.where("count = 1")
.drop("count")
.join(viewingDataset, JavaConversions.asScalaBuffer(asList("userId", "VTS")))

最佳答案

您可以使用计数进行聚合,过滤结果并返回

df.groupBy("userId", "Vts").count
.where($"count" === 1)
.drop("count")
.join(df, Seq("userId", "Vts"))

使用窗口函数可以获得相同的结果,但如果数据倾斜且平均成本更高,则它的鲁棒性会降低。

关于java - 删除两个重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51176408/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com