2017-03-17 1 views
0

group by 절을 통해 배열의 결합을 원합니다. Hive는 배열 조합을 집계하는 일반적인 방법이 없습니다. 내장 된 하이브 기능을 제외한 다른 솔루션이 있습니까?배열 유니온에 대한 집계 함수 [HIVE]

예 :

CREATE TABLE base_table 
(
    day string, 
    sample_data array<string> 
) 

SELECT day, ARRAY_UNION(sample_data) FROM 
(
SELECT day, sample_data from base_table1 
UNION ALL 
SELECT day, sample_data from base_table2 
) 
GROUP BY day 
+1

매우, 매우, 매우 불분명 시도 할 수 있습니다. "배열의 결합"? "그룹별로"? 필요한 결과와 관련 코드 (테이블 정의 등)를 포함하는 데이터 샘플을 제공하십시오 –

+0

'SELECT 일, COLLECT_LIST FROM (sample_data) ( SELECT 일, base_table1 UNION에서 sample_data ALL SELECT 일, base_table2 에서 sample_data) GROUP BY day' – mrsrinivas

+1

당신은'UDAF'도 쓸 수 있습니다 – mrsrinivas

답변

1

당신은 collect_list 또는 collect_set

SELECT day, COLLECT_LIST(sample_data) FROM 
(
    SELECT day, sample_data from base_table1 
    UNION ALL 
    SELECT day, sample_data from base_table2 
) 
GROUP BY day 
+0

이것은 작동하지 않습니다. collect_list (array)를 실행해야합니다. collect_list는 복잡한 데이터 유형에서는 작동하지 않습니다. –

+0

샘플 입력 및 출력 데이터를 추가 할 수 있습니까? – mrsrinivas