如何使用 JAVA 在 Spark SQL 中基于单列删除重复行

Posted

技术标签:

【中文标题】如何使用 JAVA 在 Spark SQL 中基于单列删除重复行【英文标题】:how to remove duplicate rows on the basis of single column in Spark SQL using JAVA 【发布时间】:2017-07-24 17:01:53 【问题描述】:

我需要了解如何在使用 Java 的 Spark SQL 中基于单行从数据框中删除重复行。

与普通 SQL 一样,ROW_NUMBER () OVER (PARTITION BY col 按 Col DESC 订购)。如何将此步骤转换为 Java 中的 Spark SQL?

【问题讨论】:

【参考方案1】:

您可以使用 dataframe.dropDuplicates("col1") 从数据框中删除重复项。它将删除所有在 col1 中有重复的行。此 API 可从 Spark 2.x on wards 获得。

【讨论】:

【参考方案2】:

你看对了。我们应该使用窗口函数,然后过滤掉 row_number=1 的数据框以获得最新的记录(按字段排序有助于给出 row_number)。

点击以下链接。

http://xinhstechblog.blogspot.com/2016/04/spark-window-functions-for-dataframes.html

How to use Analytic/Window Functions in Spark Java?

【讨论】:

以上是关于如何使用 JAVA 在 Spark SQL 中基于单列删除重复行的主要内容,如果未能解决你的问题,请参考以下文章