[HADOOP] Hive / Pig / MapReduce를 사용하여 재귀 계층 구조를 병합하는 방법
HADOOPHive / Pig / MapReduce를 사용하여 재귀 계층 구조를 병합하는 방법
불균형 트리 데이터가 다음과 같은 표 형식으로 저장되어 있습니다.
parent,child
a,b
b,c
c,d
c,f
f,g
나무의 깊이는 알려져 있지 않습니다.
각 행에 다음과 같이 행의 리프 노드에서 루트 노드까지의 전체 경로를 포함하는이 계층 구조를 평탄화하는 방법 :
leaf node, root node, intermediate nodes
d,a,d:c:b
f,a,e:b
벌집, 돼지 또는 mapreduce를 사용하여 위의 문제를 해결하기위한 제안 사항이 있습니까? 미리 감사드립니다.
해결법
-
==============================
1.돼지를 사용하여 문제를 해결하려고했습니다. 샘플 코드는 다음과 같습니다.
돼지를 사용하여 문제를 해결하려고했습니다. 샘플 코드는 다음과 같습니다.
결합 기능 :
-- Join parent and child Define join_hierarchy ( leftA, source, result) returns output { joined= join $leftA by parent left, $source by child; tmp_filtered= filter joined by source::parent is null; part= foreach tmp_filtered leftA::child as child, leftA::path as path; $result= union part, $result; part_remaining= filter joined by source::parent is not null; $output= foreach part_remaining generate $leftA::child as child, source::parent as parent, concat(concat(source::parent,':'),$leftA::path) }
데이터 셋로드 :
--My dataset field delimiter is ','. source= load '*****' using pigStorage(',') as (parent:chararray, child:chararray); --create additional column for path leftA= foreach source generate child, parent, concat(parent,':'); --initially result table will be blank. result= limit leftA 1; result= foreach result generate '' as child , '' as parent; --Flatten hierarchy to 4 levels. Add below lines equivalent to hierarchy depth. leftA= join_hierarchy(leftA, source, result); leftA= join_hierarchy(leftA, source, result); leftA= join_hierarchy(leftA, source, result); leftA= join_hierarchy(leftA, source, result);
from https://stackoverflow.com/questions/39519561/how-to-flatten-recursive-hierarchy-using-hive-pig-mapreduce by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Mahout 0.9 및 Hadoop 2.2.0-org.apache.hadoop.mapreduce.JobContext 인터페이스를 찾았지만 클래스가 예상되었습니다. (0) | 2019.09.15 |
---|---|
[HADOOP] hadoop-총 매퍼가 결정되는 방법 (0) | 2019.09.15 |
[HADOOP] Mapreduce XML 입력 형식-사용자 정의 형식 작성 (0) | 2019.09.15 |
[HADOOP] Tez 및 Map reduce에서 "count (*)"를 실행하는 동안 동작의 차이 (0) | 2019.09.15 |
[HADOOP] Hive, Impala 또는 Pig에서 문자열 일치로 테이블 조인 (0) | 2019.09.15 |