> 데이터 베이스 > MySQL 튜토리얼 > Hive中Group By的去重

Hive中Group By的去重

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-07 16:37:14
원래의
2995명이 탐색했습니다.

在Hive的是用中,我们经常会有这种需求: 按照同一个id进行Group By,然后对另一个字段去重,例如下面得数据: id pic1.jpg2.jpg1.jpg 此时,是用DISTINCT或者2 col得Group By都是不行得,我们可以用这个UDAF:collect_set(col),它将对同一个group by 得ke

在Hive的是用中,我们经常会有这种需求:

按照同一个id进行Group By,然后对另一个字段去重,例如下面得数据:

id pic
1.jpg
2.jpg
1.jpg
로그인 후 복사

此时,是用DISTINCT或者2 col得Group By都是不行得,我们可以用这个UDAF:collect_set(col),它将对同一个group by 得key进行set去重后,转换为一个array。

再举一个例子,我们可以对pic进行去重,拼接:
SELECT id, CONCAT_WS(',', COLLECT_SET(pic)) FROM tbl GROUP BY id
在这里CONCAT_WS是UDF,COLLECT_SET是UDAF,它将group后的pic去重,并转换为了array,方便udf是用。

PS:如果不需要去重,可以使用COLLECT_LIST。

更多UDAF,见这里 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿