JSON 형태의 문자열로 들어오는 칼럼을 UDTF 함수를 이용하여 테이블로 만들어야 할 때 다음과 같이 사용할 수 있다.
JSON 문자열의 데이터를 찾는 것은 get_json_object()를 이용하고, inline() 함수를 이용하여 테이블화 한다.
hive> SELECT inline(array( struct(get_json_object(str, "$.key1"))
> , struct(get_json_object(str, "$.key2")) ))
> FROM ( SELECT '{ "key1": "a", "value1" : "1", "key2": "b", "value2" : "2" }' AS str ) t
> ;
OK
a
b
Time taken: 0.031 seconds, Fetched: 2 row(s)
> , struct(get_json_object(str, "$.key2")) ))
> FROM ( SELECT '{ "key1": "a", "value1" : "1", "key2": "b", "value2" : "2" }' AS str ) t
> ;
OK
a
b
Time taken: 0.031 seconds, Fetched: 2 row(s)
반응형
'빅데이터 > hive' 카테고리의 다른 글
[hive] 테이블 파티션의 로케이션 정보 확인, 생성, 수정 방법 (0) | 2019.01.17 |
---|---|
[hive] 쿼리 실행중 MetaException 발생시 오류 처리 (0) | 2018.12.04 |
[hive][tez] TEZ엔진의 메모리 설정 방법 (0) | 2018.08.03 |
[hive][tez] tez의 실행 시간 요약 확인을 위한 옵션(hive.tez.exec.print.summary)및 GC시간의 하이브 튜닝 (0) | 2018.07.11 |
[hive][error] 셔플 과정에서 발생하는 OutOfMemoryError: Java heap space, error in shuffle in fetcher 오류 해결방법 (0) | 2018.07.02 |