복잡한 스키마를 비슷한 목적에 맞게 그룹핑하고 관리하기 위해서 struct 로 필드를 관리할 필요성이 생긴다. 이런 작업은 보통 스키마레지스트리를 통해 관리하고, 데이터를 가공해서 적재할때 default 값에서 일부값만 변경하여 재적재 하고 싶은 경우가 생길수 있다. 하지만 struct 에서 일부값만 바꾸는 기능이 없다. 그래서 개밥먹기로 만들어서 구현했다. hive 3.x 버전 기준으로 빌드했고 hive 4.x 에서도 동작하는데는 큰 무리가 없을것으로 보인다. GenericUDF 를 만들면서 삽질기 사실 처음에 struct 의 리턴값을 List 형태로 만들면 named_struct 함수로 테스트할때 잘 동작했는데, orc 포맷의 테이블에서 사용할때는 내부적으로 OrcStruct 클래스를 사용해서 만들어..
hive 에서는 string, bigint, double, decimal 같은 일반적인 primitive 데이터 타입이외에 map, struct, array 같은 complex type 을 지원한다. 테스트용 쿼리를 만들때 primitive 타입의 경우 쉽게 표현이 가능한데 complext type 을 표현하는 방법은 종종 헛갈릴때가 많아서 간단히 표현법을 다루고자 한다. hive 에서는 기본적으로 "select 값" 형태로 더미 값을 출력해보는게 가능한데, complext type 을 선언하여 보는건 아래와 같이 사용하면 된다. 참고로 array 와 같이 N개의 아이템을 풀어서 분석하려면? explode 를 이용해 분석하면 되는데, 그건 아래 글을 참고하도록 하자. 2023.11.27 - [데이터처리/..