티스토리 뷰

hive 에서 json 문자열을 map으로 변환하는 방법은 다음과 같다. 


<json 문자열의 중괄호 삭제>

SELECT substring("{'a':'1','b':'2'}", 2, length("{'a':'1','b':'2'}")-2);


<맵으로 변환>

SELECT str_to_map(substring("{'a':'1','b':'2'}", 2, length("{'a':'1','b':'2'}")-2), ",", ":");


<explode 를 이용하여 테이블로 사용>

SELECT explode(str_to_map(substring("{'a':'1','b':'2'}", 2, length("{'a':'1','b':'2'}")-2), ",", ":")) as (key,value);


<처리 결과>

hive> SELECT substring("{'a':'1','b':'2'}", 2, length("{'a':'1','b':'2'}")-2);

OK

'a':'1','b':'2'

Time taken: 0.045 seconds, Fetched: 1 row(s)

hive> 

    > SELECT str_to_map(substring("{'a':'1','b':'2'}", 2, length("{'a':'1','b':'2'}")-2), ",", ":");

OK

{"'b'":"'2'","'a'":"'1'"}

Time taken: 0.052 seconds, Fetched: 1 row(s)

hive> 

    > SELECT explode(str_to_map(substring("{'a':'1','b':'2'}", 2, length("{'a':'1','b':'2'}")-2), ",", ":")) as (key,value);

OK

'b' '2'

'a' '1'

Time taken: 0.048 seconds, Fetched: 2 row(s)


반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/04   »
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
글 보관함