복붙노트

[HADOOP] 하이브 - 상위 부모 잎 노드에서 양의 균형을 롤링

HADOOP

하이브 - 상위 부모 잎 노드에서 양의 균형을 롤링

나는 계층 구조 테이블은 조직 수준의 부모 자식 관계를 맺고있다. 다른 테이블 계층 구조 테이블에서 가장 낮은 수준의 자녀에 대한 계정 잔액이 있습니다. 나는 정상 아동에서 가장 아이를 시작 계층 구조의 모든 수준을 찾아야합니다. 모든 상단 PARENT_NODE는 "****"로 상단의 부모가 있습니다. 이 문제를 해결하기 위해 하이브 쿼리를 제안하십시오.

입력 테이블 :

계층 구조 테이블 :

+---------------+----------------+
|parent_node_id | child_node_id  |
+---------------+----------------+
|  C1           |    C11         |
+---------------+----------------+
|  C11          |    C12         |
+---------------+----------------+
|  C12          |    123         |
+---------------+----------------+
|  C12          |    456         |
+---------------+----------------+
|  P1           |    C1          |
+---------------+----------------+
|  P1           |    C2          | 
+---------------+----------------+
|  P2           |    C3          | 
+---------------+----------------+

Account Balance:
+-------+----------+
| node  | balance  |
+-------+----------+
|  123  |  100     |
+-------+----------+
|  456  |  150     |
+-------+----------+
|  C2   |  400     |
+-------+----------+
|  C3   |  200     |
+-------+----------+

출력 데이터 :

평평 계층 구조 :

+---------------+-------------+---------+----------+----------+
|Parent_node_id |   Level 1   | Level 2 | Level 2  | Level3   | 
+---------------+-------------+---------+----------+----------+
|  P1           |    C1       | C11     |  C12     |  123     |
+---------------+-------------+---------+----------+----------+
|  P1           |    C1       | C11     |  C12     |  456     |
+---------------+-------------+---------+----------+----------+
|  P1           |    C2       | NULL    |  NULL    |  NULL    |
+---------------+-------------+---------+----------+----------+
|  P2           |    C3       | NULL    |  NULL    |  NULL    |
+---------------+-------------+---------+----------+----------+

가장 낮은 아이에서 균형 맨

+-------+----------+
| node  | balance  |
+-------+----------+
|  123  |  100     |
+-------+----------+
|  456  |  150     |
+-------+----------+
|  C12  |  250     |
+-------+----------+
|  C11  |  250     |
+-------+----------+
|  C1   |  250     |
+-------+----------+
|  P1   |  650     |
+-------+----------+
|  C2   |  200     |
+-------+----------+
|  P2   |  200     |
+-------+----------+

해결법

    from https://stackoverflow.com/questions/54651204/hive-rolling-up-the-amount-balance-from-leaf-node-to-top-parent by cc-by-sa and MIT license