Hive 笔记

本文介绍了Hive在处理数据时的一些实用技巧,包括判断字段是否只包含数字和小数点,提取匹配中文,以及如何在Hive中实现类似SQL的功能,如取上一个、当前和下一个周四的方法,以及中括号的替换和汉字截取等操作。
摘要由CSDN通过智能技术生成

1、判断一个字段是否只包含数字和小数点:

select length(concat_ws('',split('asv1.2.3--','[0-9|.]')))>0;

2、提取/匹配/替换字符串中的中文:

select regexp_extract('Skin 伊思','[\\u4E00-\\u9FFF]+',0) ;
select regexp('Skin 伊思','[\\u4E00-\\u9FFF]+');
select regexp_replace('Skin 123一','[\\u4E00-\\u9FFF]+','aaa');

3、Hive不能使用
count(distinct roleid) over(distribute by login_mac rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
可用以下方法代替:

size(collect_set(roleid) over(distribute by login_mac rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING))

或者可以使用 lag() over() 实现。

4、
取上一个周四:
强:select date_sub('2020-06-18',cast(ceil((dayofweek('2020-06-18')+2)%7.5) as int));
弱:select date_sub('2020-06-18

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值