博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hive内置函数详解
阅读量:5086 次
发布时间:2019-06-13

本文共 5151 字,大约阅读时间需要 17 分钟。

内置函数
2.1数学函数
  
返回类型
  
函数
说明
BIGINT
round(double a)
四舍五入
DOUBLE
round(double a, int d)
小数部分d位之后数字四舍五入,例如round(21.263,2),返回21.26
BIGINT
floor(double a)
对给定数据进行向下舍入最接近的整数。例如floor(21.2),返回21。
BIGINT
ceil(double a), ceiling(double a)
将参数向上舍入为最接近的整数。例如ceil(21.2),返回23.
double
rand(), rand(int seed)
返回大于或等于0且小于1的平均分布随机数(依重新计算而变)
double
exp(double a)
返回e的n次方
double
ln(double a)
返回给定数值的自然对数
double
log10(double a)
返回给定数值的以10为底自然对数
double
log2(double a)
返回给定数值的以2为底自然对数
double
log(double base, double a)
返回给定底数及指数返回自然对数
double
pow(double a, double p) power(double a, double  p)
返回某数的乘幂
double
sqrt(double a)
返回数值的平方根
string
bin(BIGINT a)
返回二进制格式,参考:
string
hex(BIGINT a) hex(string a)
将整数或字符转换为十六进制格式。参考:
string
unhex(string a)
十六进制字符转换由数字表示的字符。
string
conv(BIGINT num, int from_base, int to_base)
将指定数值,由原来的度量体系转换为指定的试题体系。例如CONV(‘a’,16,2),返回。参考:’1010′  
double
abs(double a)
取绝对值
int double
pmod(int a, int b) pmod(double a, double b)
返回a除b的余数的绝对值
double
sin(double a)
返回给定角度的正弦值
double
asin(double a)
返回x的反正弦,即是X。如果X是在-1到1的正弦值,返回NULL。
double
cos(double a)
返回余弦
double
acos(double a)
返回X的反余弦,即余弦是X,,如果-1<= A <= 1,否则返回null.
int double
positive(int a) positive(double a)
返回A的值,例如positive(2),返回2。
int double
negative(int a) negative(double a)
返回A的相反数,例如negative(2),返回-2。
2.2收集函数
  
返回类型
  
函数
说明
int
size(Map<K.V>)
返回的map类型的元素的数量
int
size(Array<T>)
返回数组类型的元素数量
2.3类型转换函数
  
返回类型
  
函数
说明
指定 “type”
cast(expr as <type>)
类型转换。例如将字符”1″转换为整数:cast(’1′ as bigint),如果转换失败返回NULL。
2.4日期函数
  
返回类型
  
函数
说明
string
from_unixtime(bigint unixtime[, string format])
UNIX_TIMESTAMP参数表示返回一个值’YYYY- MM – DD HH:MM:SS’或YYYYMMDDHHMMSS.uuuuuu格式,这取决于是否是在一个字符串或数字语境中使用的功能。该值表示在当前的时区。
bigint
unix_timestamp()
如果不带参数的调用,返回一个Unix时间戳(从’1970- 01 – 0100:00:00′到现在的UTC秒数)为无符号整数。
bigint
unix_timestamp(string date)
指定日期参数调用UNIX_TIMESTAMP(),它返回参数值’1970-  01 – 0100:00:00′到指定日期的秒数。
bigint
unix_timestamp(string date, string pattern)
指定时间输入格式,返回到1970年秒数:unix_timestamp(’2009-03-20′,  ‘yyyy-MM-dd’) = 1237532400 参考:
string
to_date(string timestamp)
返回时间中的年月日: to_date(“1970-01-01  00:00:00″) = “1970-01-01″
string
to_dates(string date)
给定一个日期date,返回一个天数(0年以来的天数)
int
year(string date)
返回指定时间的年份,范围在1000到9999,或为”零”日期的0。
int
month(string date)
返回指定时间的月份,范围为1至12月,或0一个月的一部分,如’0000-00-00′或’2008-00-00′的日期。
int
day(string date) dayofmonth(date)
返回指定时间的日期
int
hour(string date)
返回指定时间的小时,范围为0到23。
int
minute(string date)
返回指定时间的分钟,范围为0到59。
int
second(string date)
返回指定时间的秒,范围为0到59。
int
weekofyear(string date)
返回指定日期所在一年中的星期号,范围为0到53。
int
datediff(string enddate, string startdate)
两个时间参数的日期之差。
int
date_add(string startdate, int days)
给定时间,在此基础上加上指定的时间段。
int
date_sub(string startdate, int days)
给定时间,在此基础上减去指定的时间段。
2.5条件函数
  
返回类型
  
函数
说明
T
if(boolean testCondition, T valueTrue, T  valueFalseOrNull)
判断是否满足条件,如果满足返回一个值,如果不满足则返回另一个值。
T
COALESCE(T v1, T v2, …)
返回一组数据中,第一个不为NULL的值,如果均为NULL,返回NULL。
T
CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f]  END
当a=b时,返回c;当a=d时,返回e,否则返回f。
T
CASE WHEN a THEN b [WHEN c THEN d]* [ELSE e]  END
当值为a时返回b,当值为c时返回d。否则返回e。
2.6字符函数

  
返回类型
  
函数
说明
int
length(string A)
返回字符串的长度
string
reverse(string A)
返回倒序字符串
string
concat(string A, string B…)
连接多个字符串,合并为一个字符串,可以接受任意数量的输入字符串
string
concat_ws(string SEP, string A, string B…)
链接多个字符串,字符串之间以指定的分隔符分开。
string
substr(string A, int start) substring(string A,  int start)
从文本字符串中指定的起始位置后的字符。
string
substr(string A, int start, int len)  substring(string A, int start, int len)
从文本字符串中指定的位置指定长度的字符。
string
upper(string A) ucase(string A)
将文本字符串转换成字母全部大写形式
string
lower(string A) lcase(string A)
将文本字符串转换成字母全部小写形式
string
trim(string A)
删除字符串两端的空格,字符之间的空格保留
string
ltrim(string A)
删除字符串左边的空格,其他的空格保留
string
rtrim(string A)
删除字符串右边的空格,其他的空格保留
string
regexp_replace(string A, string B, string C)
字符串A中的B字符被C字符替代
string
regexp_extract(string subject, string pattern,  int index)
通过下标返回正则表达式指定的部分。regexp_extract(‘foothebar’,  ‘foo(.*?)(bar)’, 2) returns ‘bar.’
string
parse_url(string urlString, string  partToExtract [, string keyToExtract])
返回URL指定的部分。parse_url(‘ ′,  ‘HOST’) 返回:’facebook.com’
string
get_json_object(string json_string, string  path)
select a.timestamp,  get_json_object(a.appevents, ‘$.eventid’), get_json_object(a.appenvets,  ‘$.eventname’) from log a;
string
space(int n)
返回指定数量的空格
string
repeat(string str, int n)
重复N次字符串
int
ascii(string str)
返回字符串中首字符的数字值
string
lpad(string str, int len, string pad)
返回指定长度的字符串,给定字符串长度小于指定长度时,由指定字符从左侧填补。
string
rpad(string str, int len, string pad)
返回指定长度的字符串,给定字符串长度小于指定长度时,由指定字符从右侧填补。
array
split(string str, string pat)
将字符串转换为数组。
int
find_in_set(string str, string strList)
返回字符串str第一次在strlist出现的位置。如果任一参数为NULL,返回NULL;如果第一个参数包含逗号,返回0。
array<array<string>>
sentences(string str, string lang, string  locale)
将字符串中内容按语句分组,每个单词间以逗号分隔,最后返回数组。 例如sentences(‘Hello there! How are you?’) 返回:( (“Hello”, “there”),  (“How”, “are”, “you”) )
array<struct<string,double>>
ngrams(array<array<string>>, int N,  int K, int pf)
SELECT ngrams(sentences(lower(tweet)), 2, 100  [, 1000]) FROM twitter;
array<struct<string,double>>
context_ngrams(array<array<string>>,  array<string>, int K, int pf)
SELECT context_ngrams(sentences(lower(tweet)),  array(null,null), 100, [, 1000]) FROM twitter;

转载于:https://www.cnblogs.com/CRXY/p/4569406.html

你可能感兴趣的文章
通信协议中的转义符
查看>>
SQL 递归使用
查看>>
文本分析实例---QQ聊天记录分析
查看>>
OSX: bash的更新
查看>>
Java 并发工具包——ExecutorService常用线程池
查看>>
知识点归列
查看>>
通过web代理进行跨域访问,http请求返回超时的问题定位
查看>>
xml bug
查看>>
可以嵌入程序的chrome
查看>>
开源的截图工具
查看>>
Eclipse4.7安装SWT
查看>>
POJ 1840 Eqs(哈希表)
查看>>
算法题目
查看>>
20170728 Celery项目 后台处理SQL SERVER的一个异常
查看>>
20180318 一个VS2015运行DataTable问题
查看>>
SSM框架整合
查看>>
PAT 1001-1010 题解
查看>>
创龙TMS320C6748开发板串口和中断学习笔记
查看>>
01 C语言程序设计--01 C语言基础--第3章 基本数据类型01
查看>>
Java 反射机制详解(上)
查看>>