由於字段內容爲Json字符串,隨需要用到get_json_object(string json_string, string path),最初只是知道該方法可以解析簡單的json字符串,比如:
select get_json_object('{"key1":"value1","key2":"value2","key3":"value3"}','$.key1')
結果:value1
但由於目標字段中的json字符串含有json數組,隨在網上查瞭解析方法,但大部分方法都是通過正則將數組轉成簡單的kv格式的json字符串,再利用get_json_object獲取目標值,我覺得不應該是這樣的,隨查了官方文檔,發現get_json_object其實是可以直接獲取json數組內的數據的,具體如下:
select get_json_object('{"store":{"fruit":[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}],"bicycle":{"price":19.95,"color":"red"}},"owner":"amy"}','$.store.fruit[0].type')
結果爲:apple
附上Hive官網常用函數說明:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF