如何使用 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 中基于单列删除重复行的主要内容,如果未能解决你的问题,请参考以下文章

Spark SQL:如何使用 JAVA 从 DataFrame 操作中调用 UDF

spark sql - 如何在 spark sql 中编写动态查询

使用 Java 的 Spark 和 Spark SQL 新手

如何在 spark sql 中创建永久表

如何在 Apache-Spark 2.x 中使用 java 进行增量序列

使用 Apache Spark SQL 和 Java 直接运行 sql 查询