哪个行业最容易做网站/今日重大财经新闻
目录
- hive outline
- hive 字符串函数
- 字符串长度函数:length
- 字符串反转函数:reverse
- 字符串连接函数:concat
- 带分隔符字符串连接函数:concat_ws
- 字符串截取函数:substr,substring
- 字符串转大写函数:upper,ucase
- 字符串转小写函数:lower,lcase
- 去空格函数:trim
- 左边去空格函数:ltrim
- 右边去空格函数:rtrim
- 正则表达式替换函数:regexp_replace
- 正则表达式解析函数:regexp_extract
- 空格字符串函数:space
- 重复字符串函数:repeat
- 首字符ascii函数:ascii
- 左补足函数:lpad
- 右补足函数:rpad
- 分割字符串函数: split
- 集合查找函数: find_in_set
- json字符串处理函数:get_json_object
hive outline
链接
hive 字符串函数
语法:
length(str | binary)
select length("angelababy");
select reverse("angelababy");
语法:concat(str1, str2, … strN)
select concat('hello', '-','word');
select concat('hello', '-','word','-', 'hive');
实战演练
语法:concat_ws(separator, [string | array(string)]+)
当多个字符串间连接字符相同时,
可以改用函数:concat_ws
select concat_ws('-','hello', 'word', 'hive');
实战演练
语法:
substr(str, pos[, len]) 或者 substring(str, pos[, len])
select substr("angelababy",-2); -- pos是从1开始的索引,如果为负数则倒着数
select substr("angelababy",2,2);
select upper("angelababy");
select ucase("angelababy");
select lower("ANGELABABY");
select lcase("ANGELABABY");
语法:
trim 去除左右两边的空格
select trim(" angelababy ");
-
左边去空格函数:ltrim
-
右边去空格函数:rtrim
-
正则表达式替换函数:regexp_replace
语法:
regexp_replace(str, regexp, rep)
select regexp_replace('100-200', '(\\d+)', 'num');
-- 输出 num-num
语法:
regexp_extract(str, regexp[, idx]) 提取正则匹配到的指定组内容
select regexp_extract('100-200', '(\\d+)-(\\d+)', 2);
-- 输出 200
语法:
space(n) 返回指定个数空格
select space(4);
语法:
repeat(str, n) 重复str字符串n次
select repeat("angela",2);
语法:
ascii
select ascii("angela"); --语法:a对应ASCII 97
-
左补足函数:lpad
-
右补足函数:rpad
-
分割字符串函数: split
语法:
分割字符串函数: split(str, regex)
select split('apache hive', '\\s+');
语法:
find_in_set(str,str_arrasqly)
select find_in_set('a','abc,b,ab,c,def');
语法:
get_json_object(string json_string, string path)
- 第一个参数填写json对象变量,第二个参数使用$表示json变量标识
- 如果输入的json字符串无效,那么返回NULL
- 每次只能返回一个数据项
data =
{"store":{"fruit":[{"weight":8,"type":"apple"}, {"weight":9,"type":"pear"}], "bicycle":{"price":19.95,"color":"red"}}, "email":"amy@only_for_json_udf_test.net", "owner":"amy"
}
get单层值
select get_json_object(data, '$.owner') from test;
结果:amy
get多层值
select get_json_object(data, '$.store.bicycle.price') from test;
结果:19.95
get数组值
select get_json_object(data, '$.store.fruit[0]') from test;
结果:{“weight”:8,“type”:“apple”}