如何使用 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 新手