티스토리 뷰

반응형

hive 4.x 부터 array 를 다루는 UDF 가 기본 포함되었다. array 에서 특정아이템을 빼거나, 합치거나 이런 기능을 기본적으로 사용가능하다는건데 문제는 azure 도 그렇고 아직 hive 3.x 에 하둡 3.x 버전대가 주류를 이루고 있어서 기본적으로 사용을 못하는게 함정이다.

다행히 github 에 있는 hive 4.x 에서 array 를 다루는 udf 클래스만 추출해서 빌드한걸 테스트해보니 hive 3 버전대에서도 문제없이 동작하는걸 확인했다.

 

빌드 / 다운로드

UDF 를 빌드하는 방법은 Azure 도큐먼트에 잘 정리되어있다. 나는 이 글을 참고하고 github 에서 관련된 udf 만 추출해서 빌드를 했다.

https://learn.microsoft.com/ko-kr/azure/hdinsight/hadoop/apache-hadoop-hive-java-udf

 

만약, 빌드된 jar 만 쓰고싶다면 이걸 다운로드 하자

hive3-array-udf.jar
0.02MB

 

사용방법

다운로드한 udf 를 hdfs 에 업로드하고, 다음과 같은 형태로 beeline 에서 add jar 후 관련된 클래스의 function 을 등록한다.

-- hdfs 에 업로드는 해줘야한다
ADD JAR hdfs://네임서비스명/user/유저명/hive3-array-udf.jar;

-- function 등록
CREATE TEMPORARY FUNCTION array_distinct as 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFArrayDistinct';
CREATE TEMPORARY FUNCTION array_except as 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFArrayExcept';
CREATE TEMPORARY FUNCTION array_intersect as 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFArrayIntersect';
CREATE TEMPORARY FUNCTION array_join as 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFArrayJoin';
CREATE TEMPORARY FUNCTION array_max as 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFArrayMax';
CREATE TEMPORARY FUNCTION array_min as 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFArrayMin';
CREATE TEMPORARY FUNCTION array_remove as 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFArrayRemove';
CREATE TEMPORARY FUNCTION array_slice as 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFArraySlice';
CREATE TEMPORARY FUNCTION array_union as 'org.apache.hadoop.hive.ql.udf.generic.GenericUDFArrayUnion';

 

추가된 해당 UDF 에 대한 내용은 기존에 작성한 사용예시 글을 참고하도록 하자.

2024.01.26 - [데이터처리/Hive] - [HIVE] hive 4.x 버전에 추가된 array 함수 8개 : 예제 포함

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함