天天看點

hive sql通過具體位址解析出行政區劃(省 > 市 > 區 > 縣 > 鄉 > 鎮 > 村)

hive sql通過具體位址解析出行政區劃(省 > 市 > 區 > 縣 > 鄉 > 鎮 > 村)

一.任務結果:

hive sql通過具體位址解析出行政區劃(省 > 市 > 區 > 縣 > 鄉 > 鎮 > 村)

二. 建立表

三.插入測試資料

insert into test_xzqh values
('溫嶺市箬橫鎮西江村232号')
,('溫嶺市松門鎮塘礁村')
,('三門縣浦壩港鎮官塘村175号')
,('溫嶺市橫峰街道馬鞍橋村村部')
,('臨海市古城街道台州府路162号')
,('路橋區路橋街道銀座街269号')
,('溫嶺市石塘鎮林石北路170路陽光小區3幢047号')
,('臨海市大田街道雙廟村')
,('黃岩區上鄭鄉聖堂村')
,('臨海市白水洋鎮上官路99号')
,('仙居縣環城北路以北')
           

四.相關邏輯

select 
dz,
regexp_replace(dz,regexp_replace(dz,'.*省',''),'') as sheng,
regexp_replace(regexp_replace(dz,'.*省',''),regexp_replace(regexp_replace(dz,'.*省',''),'.*市',''),'') as shi,
if(length(regexp_replace(concat(split(dz,'區')[0],'區'),'.*[省|市]',''))>6,'',regexp_replace(concat(split(dz,'區')[0],'區'),'.*[省|市]',''))  as  qu,
regexp_replace(regexp_replace(dz,regexp_replace(dz,'.*縣',''),''),'.*[省|市|區]','') xian,
regexp_replace(regexp_replace(dz,regexp_replace(dz,'.*鄉',''),''),'.*[省|市|區|縣]','') xiang,
regexp_replace(regexp_replace(dz,regexp_replace(dz,'.*鎮',''),''),'.*[省|市|區|縣|鄉]','') zhen,
regexp_replace(regexp_replace(dz,regexp_replace(dz,'.*街道',''),''),'.*[省|市|區|縣|鄉]','') jiedao,
regexp_replace(regexp_replace(dz,regexp_replace(dz,'.*村',''),''),'.*[省|市|區|縣|鄉|鎮|街道]','') cun
from test_xzqh