Hive 是一種數據倉庫,允許用戶通過 SQL 查詢語言來查詢和管理海量數據。在 Hive 中,JSON 格式是一種常見的數據格式,本文將介紹 Hive 中 JSON 格式的使用。
-- 創建表 CREATE TABLE sample(json STRING); -- 添加數據 INSERT INTO sample VALUES ('{"id":"1","name":"John","age":25,"gender":"Male"}'), ('{"id":"2","name":"Jane","age":30,"gender":"Female"}'); -- 查詢數據 SELECT json_extract_scalar(json, '$.name') as name, json_extract_scalar(json, '$.age') as age FROM sample;
在 Hive 中,可以使用 json_extract_scalar 函數來獲取 JSON 數據中的屬性值。json_extract_scalar 函數接受兩個參數,第一個參數是 JSON 字符串,第二個參數是屬性路徑。屬性路徑用 $ 符號開頭,后面跟著屬性名。如果屬性名是一個嵌套屬性,可以使用 . 符號連接嵌套屬性。
-- 查詢所有屬性 SELECT get_json_object(json, '$') as json_values FROM sample;
除了可以獲取 JSON 中的單個屬性,還可以通過 get_json_object 函數來獲取整個 JSON 對象。get_json_object 函數接受兩個參數,第一個參數是 JSON 字符串,第二個參數是屬性路徑。如果獲取整個 JSON 對象,屬性路徑為 $。
Hive 中還提供了其他一些 JSON 相關的函數,如json_tuple、json_tuple_outer、json_array_contains等,可以根據自己的需求使用不同的函數。