최종 수정: 에
EXPLODE_SPLIT_OUTER
설명
explode_split_outer 테이블 함수는 지정된 구분자에 따라 문자열을 여러 부분 문자열로 분할하고, 각 부분 문자열을 별도의 행으로 확장하는 데 사용됩니다.
중첩된 데이터 구조를 표준 평면 테이블 형식으로 펼치려면 LATERAL VIEW와 함께 사용해야 합니다.
explode_split_outer와 explode_split의 주요 차이점은 NULL 값을 처리하는 방식입니다.
구문
EXPLODE_SPLIT_OUTER(<str>, <delimiter>)
매개변수
<str>String 타입으로, 분할할 문자열입니다.<delimiter>String 타입으로, 구분자입니다.
반환 값
- 분할된 부분 문자열로 구성된 열을 반환하며, 열 타입은 String입니다.
사용 시 참고 사항
<str>이 NULL이면 NULL이 포함된 1개 행을 반환합니다.<str>이 빈 문자열("")이거나 분할할 수 없으면 1개 행을 반환합니다.<delimiter>가 NULL이면 NULL이 포함된 1개 행을 반환합니다.<delimiter>가 빈 문자열("")이면<str>을 바이트 단위로 분할합니다(SPLIT_BY_STRING).
예제
- 데이터 준비
create table example(
k1 int
) properties(
"replication_num" = "1"
);
insert into example values(1); - 일반적인 매개변수
select * from example lateral view explode_split_outer("ab,cd,ef", ",") t2 as c;+------+------+
| k1 | c |
+------+------+
| 1 | ab |
| 1 | cd |
| 1 | ef |
+------+------+ - 빈 문자열 및 분할할 수 없는 경우
select * from example lateral view explode_split_outer("", ",") t2 as c;+------+------+
| k1 | c |
+------+------+
| 1 | |
+------+------+select * from example lateral view explode_split_outer("abc", ",") t2 as c;+------+------+
| k1 | c |
+------+------+
| 1 | abc |
+------+------+ - NULL 매개변수
select * from example lateral view explode_split_outer(NULL, ',') t2 as c;+------+------+
| k1 | c |
+------+------+
| 1 | NULL |
+------+------+ - 빈 구분자
select * from example lateral view explode_split_outer('abc', '') t2 as c;+------+------+
| k1 | c |
+------+------+
| 1 | a |
| 1 | b |
| 1 | c |
+------+------+ - 구분자가 NULL인 경우
select * from example lateral view explode_split_outer('abc', null) t2 as c;+------+------+
| k1 | c |
+------+------+
| 1 | NULL |
+------+------+