Hive json字符串解析


在做數據測試時,會遇到數據庫表里字段類型為json 的情況,而我們可能只關注該字段中的各別內容的信息,如下

content
{"測試內容1":14,"測試內容2":1,"測試內容3":2}

 

 

比如我們只需要 

測試內容2、測試內容3 對應的 value 值。

方式一:get_json_object()
select get_json_object(content,'$.測試內容2') as Testcontent from testTableName;

-- 執行結果為 1
select
get_json_object(content,'$.測試內容2') as Testcontent2,
get_json_object(content,'$.測試內容3') as Testcontent3
from testTableName;
-- 執行結果為 1、2

 

get_json_object函數第一個參數填寫json對象變量,第二個參數使用$表示json變量標識,然后用 . 或 [] 讀取對象或數組;

 

方式二:json_tuple()

當使用json_tuple對象時,可以顯著提高效率,一次獲取多個對象並且可以被組合使用,寫法如下:

其中,需要使用lateral view 視圖方法來寫,不需要加$標示符讀取對象

select a.timestamp,
 b.* 
from log a 
lateral view json_tuple(a.appevent, 'eventid', 'eventname') b as f1, f2;

-- 其中 b.* 代表的就是 f1,f2,也就是 appevent.eventid 、appevent.eventname

 

get_json_object與json_tuple在解析埋點數據時會經常用到,而且比較有效且很簡單

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM