Hive(三)-内置函数-字符函数

Return Type

Name(Signature)

Description

int

ascii(string str)

返回str中首个ASCII字符串的整数值

string

base64(binary bin)

将二进制bin转换成64位的字符串

string

concat(string|binary A, string|binary B...)

对二进制字节码或字符串按次序进行拼接

array<struct<string,double>>

context_ngrams(array<array<string>>, array<string>, int K, int pf)

与ngram类似,但context_ngram()允许你预算指定上下文(数组)来去查找子序列

string

concat_ws(string SEP, string A, string B...)

与concat()类似,但使用指定的分隔符进行分隔

string

concat_ws(string SEP, array<string>)

拼接Array中的元素并用指定分隔符进行分隔

string

decode(binary bin, string charset)

使用指定的字符集charset将二进制值bin解码成字符串,支持的字符集有:'US-ASCII', 'ISO-8859-1', 'UTF-8', 'UTF-16BE', 'UTF-16LE', 'UTF-16',如果任意输入参数为NULL都将返回NULL

binary

encode(string src, string charset)

使用指定的字符集charset将字符串编码成二进制值,支持的字符集有:'US-ASCII', 'ISO-8859-1', 'UTF-8', 'UTF-16BE', 'UTF-16LE', 'UTF-16',如果任一输入参数为NULL都将返回NULL

int

find_in_set(string str, string strList)

返回以逗号分隔的字符串中str出现的位置,如果参数str为逗号或查找失败将返回0,如果任一参数为NULL将返回NULL回

string

format_number(number x, int d)

将数值X转换成"#,###,###.##"格式字符串,并保留d位小数,如果d为0,将进行四舍五入且不保留小数

string

get_json_object(string json_string, string path)

从指定路径上的JSON字符串抽取出JSON对象,并返回这个对象的JSON格式,如果输入的JSON是非法的将返回NULL,注意此路径上JSON字符串只能由数字 字母 下划线组成且不能有大写字母和特殊字符,且key不能由数字开头,这是由于Hive对列名的限制

boolean

in_file(string str, string filename)

如果文件名为filename的文件中有一行数据与字符串str匹配成功就返回true

int

instr(string str, string substr)

查找字符串str中子字符串substr出现的位置,如果查找失败将返回0,如果任一参数为Null将返回null,注意位置为从1开始的

int

length(string A)

返回字符串的长度

int

locate(string substr, string str[, int pos])

查找字符串str中的pos位置后字符串substr第一次出现的位置

string

lower(string A) lcase(string A)

将字符串A的所有字母转换成小写字母

string

lpad(string str, int len, string pad)

从左边开始对字符串str使用字符串pad填充,最终len长度为止,如果字符串str本身长度比len大的话,将去掉多余的部分

string

ltrim(string A)

去掉字符串A前面的空格

array<struct<string,double>>

ngrams(array<array<string>>, int N, int K, int pf)

返回出现次数TOP K的的子序列,n表示子序列的长度

string

parse_url(string urlString, string partToExtract [, string keyToExtract])

返回从URL中抽取指定部分的内容,参数url是URL字符串,而参数partToExtract是要抽取的部分,这个参数包含(HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO)

例如:parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'HOST') ='facebook.com',如果参数partToExtract值为QUERY则必须指定第三个参数key  如:parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'QUERY', 'k1') =‘v1’

string

printf(String format, Obj... args)

按照printf风格格式输出字符串

string

regexp_extract(string subject, string pattern, int index)

抽取字符串subject中符合正则表达式pattern的第index个部分的子字符串,注意些预定义字符的使用,如第二个参数如果使用'\s'将被匹配到s,'\\s'才是匹配空格

string

regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT)

按照Java正则表达式PATTERN将字符串INTIAL_STRING中符合条件的部分成REPLACEMENT所指定的字符串,如里REPLACEMENT这空的话,抽符合正则的部分将被去掉  如:regexp_replace("foobar", "oo|ar", "") = 'fb.' 注意些预定义字符的使用,如第二个参数如果使用'\s'将被匹配到s,'\\s'才是匹配空格

string

repeat(string str, int n)

重复输出n次字符串str

string

reverse(string A)

反转字符串

string

rpad(string str, int len, string pad)

从右边开始对字符串str使用字符串pad填充,最终len长度为止,如果字符串str本身长度比len大的话,将去掉多余的部分

string

rtrim(string A)

去掉字符串后面出现的空格

array<array<string>>

sentences(string str, string lang, string locale)

字符串str将被转换成单词数组,

如:sentences('Hello there! How are you?') =( ("Hello", "there"), ("How", "are", "you") )

string

space(int n)


返回n个空格

array

split(string str, string pat)

按照正则表达式pat来分割字符串str,并将分割后的数组字符串的形式返回

map<string,string>

str_to_map(text[, delimiter1, delimiter2])

将字符串str按照指定分隔符转换成Map,第一个参数是需要转换字符串,第二个参数是键值对之间的分隔符,默认为逗号;第三个参数是键值之间的分隔符,默认为"="

string

substr(string|binary A, int start) substring(string|binary A, int start)

对于字符串A,从start位置开始截取字符串并返回

string

substr(string|binary A, int start, int len) substring(string|binary A, int start, int len)

对于二进制/字符串A,从start位置开始截取长度为length的字符串并返回

string substring_index(string A, string delim, int count)

截取第count分隔符之前的字符串,如count为正则从左边开始截取,如果为负则从右边开始截取

string

translate(string|char|varchar input, string|char|varchar from, string|char|varchar to)

将input出现在from中的字符串替换成to中的字符串 如:translate("MOBIN","BIN","M")="MOM"

string

trim(string A)

将字符串A前后出现的空格去掉

binary

unbase64(string str)

将64位的字符串转换二进制值

string

upper(string A) ucase(string A)

将字符串A中的字母转换成大写字母

string initcap(string A)

将字符串A转换第一个字母大写其余字母的字符串

int levenshtein(string A, string B)

计算两个字符串之间的差异大小  如:levenshtein('kitten', 'sitting') = 3

string soundex(string A)

将普通字符串转换成soundex字符串

猜你喜欢

转载自www.cnblogs.com/sunziying/p/9068849.html