1.获取Map数据:
【data[‘key’]】
select substr(a.url,-6) ,a.usertag,b.name,b.store_type,a.ds from (
select data[‘url’] as url,usertag,ds from dwd_datacenter_trackmodel where typeid =’TANGECHE_SCAN_OUT’ and ds >’2017-07-15′ )a
left join dwd_centralized_authshop b on substr(a.url,-6) = b.code
where substr(a.url,-6)!=’store=’
2.Hive中处理String数据方法
【get_json_object(data,’$.key’)】
select get_json_object(a.ext,’$.car_city_name’),count(1),to_date(a.date_create) from dwd_angelia_clue_add_history a
where a.tag like ‘%tangeche%’
and a.clue_category in
(‘tangeche_woyaozixun_clue’,’tangeche_yixiang_chexing_clue’,’tangeche_niming_clue’,’pcauto_buyer_clue’,’cheyibai_seller_clue’,’cheyibai_buyer_clue’,’chexiang_buyer_clue’)
and a.store_id =’null’
group by get_json_object(a.ext,’$.car_city_name’),to_date(a.date_create)
参考文章:http://blog.csdn.net/qq_31573519/article/details/55104822
3.Hive中处理url的函数:
parse_url
select x.name,x.ds,count(x.usertag),count(distinct x.usertag) from (
select parse_url(regexp_replace(a.url,’#/’,”),’QUERY’,’modelCode’) as url_model,b.name as name ,a.usertag usertag ,a.ds ds from (
SELECT data[‘url’] as url,usertag,ds from dwd_datacenter_trackmodel
where typeid =’TANGECHEAPP_TAB_LIST_DETAIL’ and ds >’2017-08-01′)a
left join dim_dictionary_element b on parse_url(regexp_replace(a.url,’#/’,”),’QUERY’,’modelCode’) = b.code)x
group by x.name,x.ds
4.Hive中处理字符串分割函数:spilt
a.基本用法:
例1:
split(‘a,b,c,d’,’,’)
得到的结果:
[“a”,”b”,”c”,”d”]
b.截取字符串中的某个值:
当然,我们也可以指定取结果数组中的某一项
例2:
split(‘a,b,c,d’,’,’)[0]
得到的结果:
a
c.特殊字符的处理:
特殊分割符号
regex 为字符串匹配的参数,所以遇到特殊字符的时候需要做特殊的处理
split(‘192.168.0.1′,’\\.’)
得到的结果:
[“192″,”168″,”0″,”1”]
需要注意的是:
当然当split包含在 “” 之中时 需要加4个\
如 hive -e “…. split(‘192.168.0.1′,’\\\\.’) … ” 不然得到的值是null
同样的 | 等特殊符号也需要做类似 处理。
split文档:http://blog.csdn.net/lxpbs8851/article/details/18712407
url截取数据逻辑:http://blog.sina.com.cn/s/blog_6676d74d0102vtp9.html