简述Hive数据去重的两种方式 (distinct和group by) ?
Hive中数据去重的两种方式是使用DISTINCT
关键字和GROUP BY
子句。
- DISTINCT关键字
使用DISTINCT
关键字可以对某一列或多列的数据进行去重。它会返回唯一不同的值。
SELECT DISTINCT column1, column2, ...
FROM table_name;
这将返回在column1
、column2
等列中所有不重复的行。
- GROUP BY子句
使用GROUP BY
子句可以对某一列或多列的数据进行分组,并可以对每个组进行聚合操作,如计数、求和等。
SELECT column1, COUNT(*)
FROM table_name
GROUP BY column1;
这将按照column1
的值进行分组,并计算每个组中的行数。通过这种方式,你可以得到每个唯一值及其对应的行数。但要注意,虽然GROUP BY
在某种程度上可以达到去重的效果,但它的主要目的是聚合数据,而不是简单地去除重复行。
总结:DISTINCT
主要用于返回唯一不同的值,而GROUP BY
主要用于聚合数据。在处理数据去重时,根据具体需求选择合适的方式。