Hive2.0常用函数(对编辑器很无语😓)

时间:2019-06-12
本文章向大家介绍Hive2.0常用函数(对编辑器很无语😓),主要包括Hive2.0常用函数(对编辑器很无语😓)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

 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)
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)
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>

原文地址:https://www.cnblogs.com/chwilliam85/p/11009553.html