hive row_number() over()去重和group by的哪个效率搞
时间: 2023-10-27 14:42:10 浏览: 156
02.hive内置函数--窗口分析函数--row_number_over.mp4
在 Hive 中,`row_number() over()` 去重和 `group by` 都可以用来去重。但是它们的效率和使用场景是不同的。
`row_number() over()` 去重的效率相对较低,因为它需要对数据进行排序,并且需要为每一行分配一个行号。如果数据量很大,排序会变得非常慢,而且可能会导致内存不足的问题。因此,对于大数据集,使用 `row_number() over()` 去重可能不是最好的选择。
`group by` 去重通常比 `row_number() over()` 更快,因为它不需要进行排序,而是将数据分组并计算每个组的聚合函数。因此,对于大型数据集,使用 `group by` 去重可能会更有效率。
总的来说,如果你需要对大型数据集进行去重操作,建议使用 `group by`。如果你需要对小型数据集进行去重操作,并且需要保留原始数据中的某些行,可以考虑使用 `row_number() over()`。
阅读全文