hive字符串函数总结

hive字符串函数总结

常用的字符串函数由上到下排列,最后的几个函数由于没有理解或者由于版本原因没有给出例子

简介函数名返回类型函数描述举例结果
字符串长度length(string A)int返回字符串A的长度select length('abcedfg');7
字符串反转reverse(string A)string返回字符串A的反转结果select reverse('abcedfg');gfdecba
字符串切割split(string str, string pat)array按照pat字符串分割str,会返回分割后的字符串数组select split('a,b,c,d,e,f,g', ',');[“a”,“b”,“c”,“d”,“e”,“f”,“g”]
字符串连接concat(string A, string B…)string返回字符串连接后结果select concat('abc', 'def', 'gh');abcdefgh
带分隔符的字符串连接concat_ws(string SEP, string A, string B)string返回输入字符串以SEP为分隔符的拼接后的结果select concat_ws(',','abc','def','gh');abc,def,gh
带分隔符的字符串连接concat_ws(string SEP, array)string返回输入字符串数组以SEP为分隔符的拼接后的结果select concat_ws(',',array('abc', 'def', 'gh'));abc,def,gh
字符串截取substr(string A, int start)
substring(string A, int start)
string返回字符串A从start位置到结尾的字符串select substr('abcde',3);<br />select substring('abcde', 3);<br />select substr('abcde',-1);cde
cde
e
字符串截取substr(string A, int start, int len)
substring(string A, int start, int len)
string返回字符串A从start位置,长度为len的字符串select substr('abcde',3,2);<br />select substring('abcde', 3, 2);<br />select substr('abcde',-3, 2);cd
cd
cd
字符串转大写upper(string A)
ucase(string A)
string返回字符串A的大写格式select upper('abCdEF');<br />select ucase('abCdEF');ABCDEF
字符串转小写lower(string A)
lcase(string A)
string返回字符串A的小写格式select lower('abCdEF');<br />select lcase('abCdEF');abcdef
首字母大写其余字母小写initcap(string A)string返回一个新字符串,每个单词的首字母大写,其他字母小写,每个单词由空格分隔select initcap('abCdEF');Abcdef
去两边空格trim(string A)string去除字符串A两边的空格select length(' ab cd ef ');<br />select length(trim(' ab cd ef '));12
8
去左边空格ltrim(string A)string去除字符串A左边的空格select length(' ab cd ef ');<br />select length(ltrim(' ab cd ef '));12
10
去右边空格rtrim(string A)string去除字符串A右边的空格select length(' ab cd ef ');<br />select length(rtrim(' ab cd ef '));12
10
将字符串转为mapstr_to_map(text[, delimiter1, delimiter2])map<string, string>使用两个分隔符将文本拆分为键值对。Delimiter1 将文本分成 KV 对,Delimiter2 拆分每个 KV 对。默认分隔符是“,”用于 delimiter1,“:”用于 delimiter2。select str_to_map("aa:1,bb:2");<br />select str_to_map("aa:1,bb:2", ',', ':');{“aa”:“1”,“bb”:“2”}
使用正则替换字符串regexp_replace(string A, string B, string C)string将字符串A中的符合java正则表达式B的部分替换为C[有些需要转义字符]select regexp_replace('a1b2c3', 'a1', 'd4');<br />select regexp_replace('foobar', 'oo|ar', '');d4b2c3
fb
使用正则提取字符串regexp_extract(string subject, string pattern, int index)string将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符select regexp_replace('a\nb\nc3', '\n', '0');<br />select regexp_replace('a1b2c3', '[1-9]', '0');a0b0c3
a0b0c0
URL解析函数parse_url(string urlString, string partToExtract [, string keyToExtract])string返回URL中指定的部分,partToExtract的有效值为 [HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, USERINFO],还可以提供keyToExtract作为第三个参数提取partToExtract为QUERY中特定的值select parse_url('https://www.baidu.com', 'HOST');<br />select parse_url('https://www.baidu.com?user=root', 'QUERY', 'user');www.baidu.com
root
JSON解析函数get_json_object(string json_string, string path)string解析json的字符串(json_string),返回path指定的内容select get_json_object('{"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"}','$.owner');amy
n个空格字符串space(int n)string返回长度为n的空格字符串select space(10);select length(space(10));10
重复字符串repeat(string str, int n)string返回重复n次后的str字符串select repeat('abc', 3);abcabcabc
首字符的ASCII码ascii(string str)int返回字符串str第一个字符的ASCII码select ascii('abc');97 → ‘a’
向左补全lpad(string str, int len, string pad)string返回 str,对str用 pad 左填充,长度为 len。如果 str 比 len 长,则返回值将缩短为 len 个字符。如果填充字符串为空,则返回值为空。select lpad('abc', 10, '0');0000000abc
向右补全rpad(string str, int len, string pad)string返回 str,对str用 pad 右填充,长度为 len。如果 str 比 len 长,则返回值将缩短为 len 个字符。如果填充字符串为空,则返回值为空。select rpad('abc', 10, '0');abc0000000
在集合中查找字符串fine_in_set(string str, string strList)int返回str在strList第一次出现的位置,其中strList是用逗号分隔的字符串。如果任一参数为null,则返回null。如果str中包含任何逗号,则返回0。select find_in_set('ab', 'ef,ab,cd,e');<br />select find_in_set('12', 'ef,ab,cd,e');2
0
返回某个字符串elt(int N, string str1, string str2, string str3…)string返回索引号N处的字符串。例如 elt(2,‘hello’,‘world’) 返回 ‘world’。如果 N 小于 1 或大于参数数量,则返回 NULL。select elt(2, 'hello', 'world', 'hive');<br />select elt(4, 'hello', 'world', 'hive');<br />select elt(0, 'hello', 'world', 'hive');2
null
null
格式化数字format_number(int X, int d)string将数字 X 格式化为类似 ‘#,###,###.##’ 的格式,四舍五入到 d 位小数,并将结果作为字符串返回。如果 d 为 0,则结果没有小数点或小数部分。select format_number(123, 1);<br />select format_number(123456789, 5);123.0
123,456,789.00000
查找第一次出现的子字符串intstr(string str, string substr)int返回str中第一次出现substr的位置,位置是从1开始而不是基于0的,若是str中不存在substr则返回0,若是任一参数为null结果都为null。
从pos位置查找字符串locate(string substr, string str[, int pos])int返回位置 pos 之后 str 中第一次出现 substr 的位置。使用它可以查找第n次输出substr的位置。select locate('a', 'babbaa');<br />select locate('a', 'babbaa', 3);2
5
断句sentences(string str, string lang, string locale)array<array>将一串自然语言文本标记为单词和句子,其中每个句子在适当的句子边界处断开并作为单词数组返回。‘lang’ 和 ‘locale’ 是可选参数。例如,句子(‘Hello there! How are you?’) 返回 ( (“Hello”, “there”), (“How”, “are”, “you”) )。(‘lang’ 和 ‘locale’ 未理解)select sentences('hello world! I\'m coming');[[“hello”,“world”],[“I’m”,“coming”]]
context_ngrams(array<array>, array, int K, int pf)array<struct<string,double>>给定一串“上下文”,从一组标记化的句子中返回前 k 个上下文 N-gram。有关详细信息,请参阅StatisticsAndDataMining
translate(string input, string from, string to)string通过用from字符串中的相应字符替换字符串中存在的字符来翻译输入to字符串。如果此 UDF 的任何参数为 NULL,则结果也为 NULL。
levenshtein(string A, string B)int计算两个字符之间的levenshtein距离。。例如, levenshtein(‘kitten’, ‘sitting’) 结果为 3。
quote(String text)stringhive-4.0.0才有的。返回带引号的字符串。若输入的是null输出也是null。
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值