[HADOOP] GROUP BY를 사용하여 단일 열 필드 연결
HADOOPGROUP BY를 사용하여 단일 열 필드 연결
그룹화하여 한 열 내의 필드를 결합 / 결합하는 방법이 있습니까? 예 :
col1 col2
1 aa
1 bb
1 cc
2 dd
2 ee
나는 다음과 같은 질문을하고 싶다 :
select col1, concat(col2) from tableName group by col1;
출력은 다음과 같아야합니다.
1 aa,bb,cc
2 dd,ee
이것을하기 위해 하이브에 어떤 기능이 있습니까?
해결법
-
==============================
1.다음과 같이 테이블 테스트가 있다고 가정합니다.
다음과 같이 테이블 테스트가 있다고 가정합니다.
select id, val from test order by id, val; 2 aa 2 bb 1 bb 1 aa
HIVE 함수를 사용할 수 있습니다. collect_set :
select id, collect_set(val) from test group by id; 1 ["aa","bb"] 2 ["bb","aa"]
그러나 collect_set은 중복 요소가 제거 된 객체 세트를 반환합니다.
자세한 내용은 Language Manual Wiki를 참조하십시오.
-
==============================
2.당신은 이것을 달성하기 위해 concat_ws ()와 collect_list ()를 사용할 수 있습니다 ....
당신은 이것을 달성하기 위해 concat_ws ()와 collect_list ()를 사용할 수 있습니다 ....
좋아요.
select id , concat_ws(",", collect_list(val)) from test group by id;
","위 쿼리의 구분 기호입니다.
from https://stackoverflow.com/questions/24199258/concat-single-column-fields-using-group-by by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 실행시 hadoop 페이지 랭크 오류 (0) | 2019.07.28 |
---|---|
[HADOOP] Hadoop 2.5.0에서 실행중인 데이터 노드 데몬 (0) | 2019.07.28 |
[HADOOP] oozie 워크 플로에서 루프 처리 (0) | 2019.07.28 |
[HADOOP] 하이브를 사용한 사용자 정의 InputFormat (0) | 2019.07.28 |
[HADOOP] OOZIE 워크 플로에서 논리 연산자를 사용하는 방법 (0) | 2019.07.28 |