0;ocate(字符串,字段名),如果包含,返回大于0的index位置;否则,返回0;_hive 包含某个字符">
赞
踩
判断 name 字段中是否包含字符串 “aaa”:
select * from temp where locate("aaa", name) > 0;
ocate(字符串,字段名),如果包含,返回大于0的index位置;否则,返回0;
select * from temp where event_day in ('20201212', '20201213');
hive 中‘不等于’不管是用! 或者<>符号实现,都会将空值即null过滤掉,此时要用:
where (white_level<>'3' or white_level is null)
或者
where (white_level!='3' or white_level is null )
来保留null 的情况。
select * from temp where length(item)=7;
SELECT os_name, COUNT(DISTINCT cuid) as uv
FROM user_action_log
WHERE event_day = '20160901'
AND os_name in ('android', 'iphone')
GROUP BY os_name
语法:
if(boolean testCondition, T valueTrue, T valueFalseOrNull)
返回值T
说明: 当条件testCondition为TRUE时,返回valueTrue;否则返回valueFalseOrNull
举例:
SELECT if(val1 is not null and val1 <> '', val2, val3) as val
FROM user_action_log
语法:
get_json_object(json_string, '$.key')
说明:解析json的字符串json_string,返回以’key’为key对应的value。如果输入的json字符串无效,那么返回NULL。这个函数每次只能返回一个数据项。
举例:
select get_json_object('{"key1":"val1","key2":"val2","key3":"val3","key4":"val4"}',"$.key1");
结果:
val1
SELECT get_json_object('[{"NAME":"张三","ID":"1"},{"NAME":"李四","ID":"2"}]','$[0].NAME');
结果:
"张三"
SELECT get_json_object('[{"NAME":"张三","ID":"1"},{"NAME":"李四","ID":"2"}]','$[].NAME');
结果:
["张三", "李四"]
select get_json_object('{"name":"zhangsan","age":18}','$.name'), get_json_object('{"name":"zhangsan","age":18}','$.age');
HIVE解析json数组
HIVE获取json字段特定值(单个json或者json数组)
语法:
regexp_replace(target_item, a, b)
说明:将target_item中的a替换成b
举例:
regexp_replace(target_item, '\n', '')
将target_item中的换行符去掉
create table xxx_new
as
select *
from xxx
tablesample(10 percent)
hive中分桶其实就是根据某一个字段Hash取模,放入指定数据的桶中,比如将表table_1按照ID分成100个桶,其算法是hash(id) % 100,这样,hash(id) % 100 = 0的数据被放到第一个桶中,hash(id) % 100 = 1的记录被放到第二个桶中。创建分桶表的关键语句为:CLUSTER BY语句。
分桶抽样语法:
TABLESAMPLE (BUCKET x OUT OF y [ON colname])
其中x是要抽样的桶编号,桶编号从1开始,colname表示抽样的列,y表示桶的数量。
例如:将表随机分成10组,抽取其中的第一个桶的数据
select *
from table_01
tablesample(bucket 1 out of 10 on rand())
select *
from table_name
where col=xxx
distribute by rand()
sort by rand()
limit num;
select *
from table_name
where col=xxx
order by rand()
limit num;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。