hiveinstrt_Hive常⽤系统函数-字符串函数
ascii
ascii(string str)
返回传⼊字符串的第⼀个字符的ASCII编码
base64
base64(binary bin)
将传⼊的⼆进制参数转换为base 64 字符串
character_length
character_length(string str)
返回字符串长度(字符串需为UTF8编码)
chr
chr(bigint|double A)
将传⼊数字当做ASCII编码,并转换为对应字符,若传⼊参数超过256,则转换为chr(A % 256)
concat
concat(string|binary A, string|binary B…)
将传⼊的字符串A,B合并为新的字符串,concat(‘foo’, ‘bar’)结果为’foobar’
context_ngrams
context_ngrams(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_ws
concat_ws(string SEP, string A, string B…)或concat_ws(string SEP, array)
与concat作⽤类似,但是⽀持⾃定义的分隔符SEP
decode
hive trim函数decode(binary bin, string charset)
使⽤charset⽅式,将⼆进制bin解码为字符串。⽀持的字符集有:‘US-ASCII’, ‘ISO-8859-1’, ‘UTF-8’, ‘UTF-16BE’,‘UTF-16LE’, ‘UTF-16’
elt
elt(N int,str1 string,str2 string,str3 string,…)
返回给定字符串集中的第N个,若不存在则返回null。例如elt(2,‘hello’,‘world’) 返回’world’
encode
encode(string src, string charset)
field
field(val T,val1 T,val2 T,val3 T,…)
返回val在val1,val2…的位置。若不存在则返回0。例如field(‘world’,‘say’,‘hello’,‘world’),返回值为3
find_in_set
find_in_set(string str, string strList)
返回str在strList中的位置。若不存在或str中存在",",则返回0
find_in_set
find_in_set(string str, string strList)
返回str在strList中的位置。若不存在或str中存在",",则返回0。若str为null,则返回null
format_number
format_number(number x, int d)
将数字精确到d位⼩数,例如format_number(5.123456, 4),返回值为5.1235
get_json_object
get_json_object(string json_string, string path)
根据指定的path路径从json字符串中提取json对象,并返回提取的json对象的json字符串。如果输⼊的json字符串⽆效,则返回null。注意:json路径只能包含字符[0-9a-z_u],即没有⼤写或特殊字符。此外,键*不能以数字开头
in_file
in_file(string str, string filename)
如果str以整⾏的⽅式出现在filename中,则返回True。必须存在filename⽂件,否则会报错
instr
instr(string str, string substr)
返回str中第⼀个substr的位置。如果其中str为null,则返回null;如果在str中不到substr,则返回0
length
length(string A)
返回字符串A的长度
locate
locate(string substr, string str, int pos)
返回substr在str的pos位置后,第⼀次出现的位置,pos⾮必传。例如locate(‘a’, ‘abcabc’),返回1;locate(‘a’,
‘abcabc’,1),返回1;locate(‘a’, ‘abcabc’,2),返回4
lower
lower(string A)
返回字符串A的⼩写形式
lpad
将str截取长度len位,若str长度不⾜len则,左侧⽤pad补充。例如lpad(‘abcdef’, 5, ‘a’)返回’abcde’;lpad(‘abc’, 5, ‘a’)返回’aaabc’
ltrim
ltrim(string A)
删除字符串A左边的空格
ngrams
ngrams(array, int N, int K, int pf)
返回出现次数排在前K的⼦序列,N表⽰⼦序列的长度,例如ngrams(sentences(lower(tweet)), 2, 100 [, 1000]) FROM twitter
octet_length
octet_length(string str)
返回以UTF-8编码保存字符串str所需的⼋位字节数
parse_url
parse_url(string urlString, string partToExtract [, string keyToExtract])
printf
printf(String format, Obj… args)
按照指定的format进⾏输出。例如printf(“Hello World %d %s”, 100, “days”),返回值为"Hello World 100 days”
regexp_extract
regexp_extract(string subject, string pattern, int index)
返回字符串subject与正则表达式pattern匹配后的index部分。例如regexp_extract(‘100-300’, ‘(d+)-(d+)’, 2) 的返回值为300
regexp_replace
regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT)
将字符串subject与正则表达式pattern匹配上部分⽤REPLACEMENT进⾏替换并返回。例如regexp_replace(‘100-200’, ‘(d+)’,‘num’)返回值为‘num-num’
repeat
repeat(string str, int n)
将字符串str重复n次
replace
replace(string A, string OLD, string NEW)
将字符串str中的OLD⼦串替换为NEW
reverse
reverse(string A)
对字符串A进⾏翻转
rpad
与lpad对应,将str截取长度len位,若str长度不⾜len则,右⽤pad补充。例如rpad(‘abcdef’, 5, ‘a’)返回’abcde’;
rpad(‘abc’, 5, ‘a’)返回’abcaa’
rtrim
rtrim(string A)
与ltrim对应,删除字符串A右边的空格
sentences
sentences(string str, string lang, string locale)
将字符串str按照句⼦划分成单词。其中每个句⼦为⼀个数组,句⼦中单词为数组中元素。lang和locale为可选参数。其中lang为语⾔选项(如:'en’代表英⽂),locale代表地区。例⼦:sentences(‘Hello there! How are you?’) 返回 ( (“Hello”, “there”), (“How”,“are”, “you”) )
space
space(int n)
返回n个空格的字符串
split
split(string str, string pat)
按照正则表达式pat拆分字符串str。例如:split(‘a,b,c,d’,’,’)返回[“a”,“b”,“c”,“d”]
str_to_map
str_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”}
substr
substr(string
binary A, int start, int len)
substr
substr(string
binary A, int start, int len)
substring_index
substring_index(string A, string delim, int count)
已delim为分隔符,返回delim将A分割后的前count部分。若count为负,则返回分割的最后⼀部分。例如:
substring_index(‘’, ‘.’, 2) 返回 ‘www.apache’
translate
translate(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’
返回出现在字符串A两端的空格。例如trim(’ foo bar ‘)返回’foo bar’
unbase64
unbase64(string str)
将64位的字符串转换⼆进制值
upper
upper(string A)
与lower对应,返回字符串A的⼤写形式
initcap
initcap(string A)
返回字符串,每个单词的第⼀个字母为⼤写,所有其他字母为⼩写。单词由空格分隔
levenshtein
levenshtein(string A, string B)
返回两个字符串之间的Levenshtein距离。例如 levenshtein(‘kitten’, ‘sitting’)返回值为3。(Levenshtein 距离,⼜称编辑距离,指的是两个字符串之间,由⼀个转换成另⼀个所需的最少编辑操作次数。编辑操作包括将⼀个字符替换成另⼀个字符,插⼊⼀个字符,删除⼀个字符)
soundex
soundex(string A)
返回字符串的soundex代码。例如:soundex(‘Miller’)返回M460
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论