草庐IT

dropDuplicates

全部标签

Spark的dropDuplicates或distinct 对数据去重

消除重复的数据可以通过使用distinct和dropDuplicates两个方法。distinct数据去重distinct是所有的列进行去重的操作,假如你的DataFrame里面有10列,那么只有这10列完全相同才会去重。使用distinct:返回当前DataFrame中不重复的Row记录。该方法和接下来的dropDuplicates()方法不传入指定字段时的结果相同。dropDuplicates()y有四个重载方法第一个defdropDuplicates():Dataset[T]=dropDuplicates(this.columns)这个方法,不需要传入任何的参数,默认根据所有列进行去重,

scala - Spark Streaming dropDuplicates

Spark2.1.1(scalaapi)从s3位置流式传输json文件。我想根据在json中为每条记录找到的ID列(“event_id”)对所有传入记录进行重复数据删除。我不在乎保留了哪份记录,即使记录只是部分重复。我正在使用追加模式,因为数据只是通过spark.sql()方法被丰富/过滤,没有分组依据/窗口聚合。然后我使用追加模式将Parquet文件写入s3。根据文档,我应该能够使用不加水印的dropDuplicates来进行重复数据删除(显然这在长时间运行的生产中无效)。但是,这失败并出现错误:用户类抛出异常:org.apache.spark.sql.AnalysisExcepti