Hive常用系统函数-字符串函数

关于Hive常用的字符串处理函数:

函数参数格式解释
asciiascii(string str)返回传入字符串的第一个字符的ASCII编码
base64base64(binary bin)将传入的二进制参数转换为base 64 字符串
character_lengthcharacter_length(string str)返回字符串长度(字符串需为UTF8编码)
chrchr(bigint|double A)将传入数字当做ASCII编码,并转换为对应字符,若传入参数超过256,则转换为chr(A % 256)
concatconcat(string|binary A, string|binary B…)将传入的字符串A,B合并为新的字符串,concat(‘foo’, ‘bar’)结果为’foobar’
context_ngramscontext_ngrams(array<array>, array, int K, int pf)从一组标记化的句子中返回前k个文本。例如select context_ngrams(sentences(‘hello word!hello hive,hi hive,hello hive’),array(‘hello’,null),4) from A,会返回[{“ngram”:[“hive”],“estfrequency”:7141046.0},{“ngram”:[“word”],“estfrequency”:3570523.0}],即最经常在"hello"后出现的单词,并统计其频次,有统计聚合作用
concat_wsconcat_ws(string SEP, string A, string B…)或 concat_ws(string SEP, array<string>)与concat作用类似,但是支持自定义的分隔符SEP
decodedecode(binary bin, string charset)使用charset方式,将二进制bin解码为字符串。支持的字符集有:‘US-ASCII’, ‘ISO-8859-1’, ‘UTF-8’, ‘UTF-16BE’, ‘UTF-16LE’, ‘UTF-16’
eltelt(N int,str1 string,str2 string,str3 string,…)返回给定字符串集中的第N个,若不存在则返回null。例如elt(2,‘hello’,‘world’) 返回’world’
encodeencode(string src, string charset)使用charset方式,将字符串src编码为二进制bin。支持的字符集有:‘US-ASCII’, ‘ISO-8859-1’, ‘UTF-8’, ‘UTF-16BE’, ‘UTF-16LE’, ‘UTF-16’
fieldfield(val T,val1 T,val2 T,val3 T,…)返回val在val1,val2…的位置。若不存在则返回0。例如field(‘world’,‘say’,‘hello’,‘world’),返回值为3
find_in_setfind_in_set(string str, string strList)返回str在strList中的位置。若不存在或str中存在",",则返回0
find_in_setfind_in_set(string str, string strList)返回str在strList中的位置。若不存在或str中存在",",则返回0。若str为null,则返回null
format_numberformat_number(number x, int d)将数字精确到d位小数,例如format_number(5.123456, 4),返回值为5.1235
get_json_objectget_json_object(string json_string, string path)根据指定的path路径从json字符串中提取json对象,并返回提取的json对象的json字符串。如果输入的json字符串无效,则返回null。注意:json路径只能包含字符[0-9a-z_u],即没有大写或特殊字符。此外,键*不能以数字开头
in_filein_file(string str, string filename)如果str以整行的方式出现在filename中,则返回True。必须存在filename文件,否则会报错
instrinstr(string str, string substr)返回str中第一个substr的位置。如果其中str为null,则返回null;如果在str中找不到substr,则返回0
lengthlength(string A)返回字符串A的长度
locatelocate(string substr, string str, int pos)返回substr在str的pos位置后,第一次出现的位置,pos非必传。例如locate(‘a’, ‘abcabc’),返回1;locate(‘a’, ‘abcabc’,1),返回1;locate(‘a’, ‘abcabc’,2),返回4
lowerlower(string A)返回字符串A的小写形式
lpadlpad(string str, int len, string pad)将str截取长度len位,若str长度不足len则,左侧用pad补充。例如lpad(‘abcdef’, 5, ‘a’)返回’abcde’;lpad(‘abc’, 5, ‘a’)返回’aaabc’
ltrimltrim(string A)删除字符串A左边的空格
ngramsngrams(array<array>, int N, int K, int pf)返回出现次数排在前K的子序列,N表示子序列的长度,例如ngrams(sentences(lower(tweet)), 2, 100 [, 1000]) FROM twitter
octet_lengthoctet_length(string str)返回以UTF-8编码保存字符串str所需的八位字节数
parse_urlparse_url(string urlString, string partToExtract [, string keyToExtract])解析url,并返回需要抽取的部分,(可能抽取的部分partToExtract 为HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE)。例如:parse_url(‘http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1’, ‘HOST’) 返回 ‘facebook.com’
printfprintf(String format, Obj… args)按照指定的format进行输出。例如printf(“Hello World %d %s”, 100, “days”),返回值为"Hello World 100 days”
regexp_extractregexp_extract(string subject, string pattern, int index)返回字符串subject与正则表达式pattern匹配后的index部分。例如regexp_extract(‘100-300’, ‘(d+)-(d+)’, 2) 的返回值为300
regexp_replaceregexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT)将字符串subject与正则表达式pattern匹配上部分用REPLACEMENT进行替换并返回。例如regexp_replace(‘100-200’, ‘(d+)’, ‘num’)返回值为‘num-num’
repeatrepeat(string str, int n)将字符串str重复n次
replacereplace(string A, string OLD, string NEW)将字符串str中的OLD子串替换为NEW
reversereverse(string A)对字符串A进行翻转
rpadrpad(string str, int len, string pad)与lpad对应,将str截取长度len位,若str长度不足len则,右用pad补充。例如rpad(‘abcdef’, 5, ‘a’)返回’abcde’;rpad(‘abc’, 5, ‘a’)返回’abcaa’
rtrimrtrim(string A)与ltrim对应,删除字符串A右边的空格
sentencessentences(string str, string lang, string locale)将字符串str按照句子划分成单词。其中每个句子为一个数组,句子中单词为数组中元素。lang和locale为可选参数。其中lang为语言选项(如:'en’代表英文),locale代表地区。例子:sentences(‘Hello there! How are you?’) 返回 ( (“Hello”, “there”), (“How”, “are”, “you”) )
spacespace(int n)返回n个空格的字符串
splitsplit(string str, string pat)按照正则表达式pat拆分字符串str。例如:split(‘a,b,c,d’,’,’)返回[“a”,“b”,“c”,“d”]
str_to_mapstr_to_map(text, delimiter1, delimiter2)将text分割为数个键值对。其中delimiter1和delimiter2为可选参数。delimiter1(默认为’:’)代表键k与值v的分隔符。delimiter2(默认为’,’)代表键值对k-v之间的分隔符。例如str_to_map({“column1:1,column2:2”)返回值为{“column1”:“1”,“column2”:“2”}
substrsubstr(stringbinary A, int start, int len)
substrsubstr(stringbinary A, int start, int len)
substring_indexsubstring_index(string A, string delim, int count)已delim为分隔符,返回delim将A分割后的前count部分。若count为负,则返回分割的最后一部分。例如:substring_index(‘www.apache.org’, ‘.’, 2) 返回 ‘www.apache’
translatetranslate(string|char|varchar input, string|char|varchar from, string|char|varchar to)将input字符串中出现在from中的每个字符替换为to中的相应字符以后的字符串。 若from比to字符串长,那么在from中比to中多出的字符将会被删除。与PostgreSQL中对应函数等价。例如translate(‘abcdefga’,‘abc’,‘wo’)返回’wodefgw’
trimtrim(string A)返回出现在字符串A两端的空格。例如trim(’ foo bar ‘)返回’foo bar’
unbase64unbase64(string str)将64位的字符串转换二进制值
upperupper(string A)与lower对应,返回字符串A的大写形式
initcapinitcap(string A)返回字符串,每个单词的第一个字母为大写,所有其他字母为小写。单词由空格分隔
levenshteinlevenshtein(string A, string B)返回两个字符串之间的Levenshtein距离。例如 levenshtein(‘kitten’, ‘sitting’)返回值为3。(Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符)
soundexsoundex(string A)返回字符串的soundex代码。例如:soundex(‘Miller’)返回M460
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hive中,有许多字符串函数可用于处理和操作字符串。其中一些常用字符串函数包括: 1. 字符串长度函数:length(str) 这个函数返回字符串str的长度。 2. 字符串反转函数:reverse(str) 这个函数返回将字符串str反转后的结果。 3. 字符串连接函数:concat(str1, str2, ...) 这个函数将多个字符串连接在一起。 4. 带分隔符字符串连接函数:concat_ws(sep, str1, str2, ...) 这个函数将多个字符串连接在一起,并使用指定的分隔符sep进行分隔。 5. 字符串截取函数:substr(str, start, len) 或 substring(str, start, len) 这个函数返回从字符串str中从start位置开始,长度为len的子字符串。 6. 字符串转大写函数:upper(str) 或 ucase(str) 这个函数字符串str转换为大写格式。 7. 字符串转小写函数:lower(str) 或 lcase(str) 这个函数字符串str转换为小写格式。 8. 去空格函数:trim(str) 这个函数去除字符串str两端的空格。 9. 左边去空格函数:ltrim(str) 这个函数去除字符串str左边的空格。 10. 右边去空格函数:rtrim(str) 这个函数去除字符串str右边的空格。 这些是Hive中一些常用字符串函数,你可以根据需要选择使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Hive--函数--常用内置函数--字符串函数](https://blog.csdn.net/qq_46893497/article/details/110948038)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Hive常用字符串函数](https://blog.csdn.net/weixin_43823423/article/details/86663824)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值