我需要使用 hive 從字串列中提取欄位
Input: [{"name":"MANAGER"}]
Output: MANAGER
我能夠使用下面的正則運算式獲取記錄,但我無法]從輸出中洗掉。
查詢構建:
select split(regexp_replace('([{"name":"MANAGER"}])','^\\(|\\)$|[{"}]',''),': *')[1];
獲得的輸出:
MANAGER]
您能否幫我]從輸出中洗掉并僅MANAGER在此示例中使用 hive。
uj5u.com熱心網友回復:
您實際上可以使用函式決議它,get_json_object因為您共享的字串是 JSON 字串:
select get_json_object(regexp_replace('[{"name":"MANAGER"}]', '[\\[\\]]', ''), '$.name')
請參閱檔案:
get_json_object
支持 JSONPath 的有限版本:
$: 根物件.: 子運算子[]: 陣列的下標運算子*: [] 的通配符不支持的語法值得注意:
:零長度字串作為鍵..: 遞回下降@:當前物件/元素(): 腳本運算式?():過濾器(腳本)運算式。[,]: 聯合運營商[start:end.step]: 陣列切片運算子
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/432915.html
