최종 수정: 에
EXPLODE_SPLIT
설명
explode_split 테이블 함수는 지정된 구분 기호를 기준으로 문자열을 여러 부분 문자열로 분할하고, 각 부분 문자열을 별도의 행으로 확장합니다.
중첩된 데이터 구조를 표준 평면 테이블 형식으로 펼치려면 LATERAL VIEW와 함께 사용해야 합니다.
explode_split과 explode_split_outer의 주된 차이점은 NULL 값을 처리하는 방식입니다.
구문
EXPLODE_SPLIT(<str>, <delimiter>)
매개변수
<str>String 타입으로, 분할할 문자열입니다.<delimiter>String 타입으로, 구분 기호입니다.
반환값
- 분할된 부분 문자열로 구성된 열을 반환하며, 열의 타입은 String입니다.
사용 시 참고 사항
<str>이 NULL이면 0개의 행을 반환합니다.<str>이 빈 문자열("")이거나 분할할 수 없으면 1개의 행을 반환합니다.<delimiter>가 NULL이면 0개의 행을 반환합니다.<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("ab,cd,ef", ",") t2 as c;+------+------+
| k1 | c |
+------+------+
| 1 | ab |
| 1 | cd |
| 1 | ef |
+------+------+ - 빈 문자열 및 분할할 수 없는 경우
select * from example lateral view explode_split("", ",") t2 as c;+------+------+
| k1 | c |
+------+------+
| 1 | |
+------+------+select * from example lateral view explode_split("abc", ",") t2 as c;+------+------+
| k1 | c |
+------+------+
| 1 | abc |
+------+------+ - NULL 매개변수
select * from example lateral view explode_split(NULL, ',') t2 as c;Empty set (0.03 sec) - 빈 구분 기호
select * from example lateral view explode_split('abc', '') t2 as c;+------+------+
| k1 | c |
+------+------+
| 1 | a |
| 1 | b |
| 1 | c |
+------+------+ - 구분 기호가 NULL인 경우
select * from example lateral view explode_split('abc', null) t2 as c;Empty set (0.03 sec)