[HADOOP] 돼지의 group_concat?
HADOOP돼지의 group_concat?
Pig에서이 작업을 수행하려고합니다. (MySQL과 동등한 group_concat () 찾기)
내 테이블에서 예를 들어, 나는 이것을 가지고 : (3fields - 사용자 ID, 클릭 수, 페이지 번호)
155 | 2 | 12
155 | 3 | 133
155 | 1 | 144
156 | 6 | 1
156 | 7 | 5
원하는 출력은 다음과 같습니다.
155| 2,3,1 | 12,133,144
156| 6,7 | 1,5
PIG에서 어떻게 이것을 달성 할 수 있습니까?
해결법
-
==============================
1.
grouped = GROUP table BY userid; X = FOREACH grouped GENERATE group as userid, table.clickcount as clicksbag, table.pagenumber as pagenumberbag;
이제 X는 :
{(155,{(2),(3),(1)},{(12),(133),(144)}, (156,{(6),(7)},{(1),(5)}}
이제 내장 UDF Bag To Tuple을 사용해야합니다.
output = FOREACH X GENERATE userid, BagToTuple(clickbag) as clickcounts, BagToTuple(pagenumberbag) as pagenumbers;
출력에는 이제 원하는 것을 포함해야합니다. 출력 단계를 병합 단계로 병합 할 수도 있습니다.
output = FOREACH grouped GENERATE group as userid, BagToTuple(table.clickcount) as clickcounts, BagToTuple(table.pagenumber) as pagenumbers;
from https://stackoverflow.com/questions/18780201/group-concat-equivalent-in-pig by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 단일 시스템의 Hadoop에서 데이터 노드 실패 (0) | 2019.08.06 |
---|---|
[HADOOP] 왜 하이브에서 텍스트 파일 형식에 비해 마루가 느려 집니까? (0) | 2019.08.06 |
[HADOOP] 두 테이블을 비교하고 HIVE와 다른 행을 반환하는 방법 (0) | 2019.08.06 |
[HADOOP] Hive의 JSON 문자열에서 선택한 값을 추출하는 방법 (0) | 2019.08.06 |
[HADOOP] 년 월 일 파티션 열 목록에서 최신 / 최근 파티션을 추출하는 방법 (0) | 2019.08.06 |