[hive] hive에서 함수용 테스트 array, map 데이터 생성하는 법
hive의 함수를 테스트할 때 array, map, json 문자열을 이용하여 값을 테스트 해야 하는 경우가 있다.
이럴때 임시로 문자열을 이용하여 데이터를 생성하고 테스트하면 편리하다.
다음과 같이 사용한다.
select array(1,2,3)[2];
select array("a","b","c")[1];
select str_to_map("key1:value1,key2:value2", ",", ":")['key2'];
SELECT get_json_object('{"store":
{"fruit":\[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}],
"bicycle":{"price":19.95,"color":"red"}
},
"email":"amy@only_for_json_udf_test.net",
"owner":"amy"
}', '$.owner');
<결과 확인>
hive> select array(1,2,3)[2];
OK
3
Time taken: 0.046 seconds, Fetched: 1 row(s)
hive> select array("a","b","c")[1];
OK
b
Time taken: 0.036 seconds, Fetched: 1 row(s)
hive> select str_to_map("key1:value1,key2:value2", ",", ":")['key2'];
OK
value2
Time taken: 0.053 seconds, Fetched: 1 row(s)
hive> SELECT get_json_object('{"store":
> {"fruit":\[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}],
> "bicycle":{"price":19.95,"color":"red"}
> },
> "email":"amy@only_for_json_udf_test.net",
> "owner":"amy"
> }', '$.owner');
OK
amy