impala内置函数

impala内置函数:

数值处理:

select abs() 绝对值

select power(2,5) 求幂

select sin/cos/tan/asin/acos/atan/atan2() 三角函数

select bin() 十进制转换二进制

ceil() 返回大于参数的最小整数

floor() 返回小于参数的最大整数

conv(23,16,2) 第一个参数从第二个参数16进制转变成第三个参数2进制

degrees(3.14159) 约等于180 弧度转角度

factorial(5) 5的阶乘

fmod/mod/%(11.0,9.0) 2 取余

fnv_hash(type v) 返回64位hash值

greatest(bigint a[, bigint b …]), greatest(double a[, double b …]), greatest(decimal(p,s) a[, decimal(p,s) b …]), greatest(string a[, string b …]), greatest(timestamp a[, timestamp b …]) 返回最大值

least(bigint a[, bigint b …]), least(double a[, double b …]), least(decimal(p,s) a[, decimal(p,s) b …]), least(string a[, string b …]), least(timestamp a[, timestamp b …])

precision() scale() 返回精确度

rand() 产生0-1随机数

select truncate(3.456,7) 3.4560000 保留小数位

字符处理:

1 连接函数

concat(‘hello’,’,’,‘world’) hello,world

concat_ws(string sep, string a, string b…)

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’]) 分组拼接,组名相同的字符串用分隔符连接在一起,不写分隔符默认为逗号

group_concat(string s [, string sep])

分割

split_part(‘x,y,z’, ‘,’, 2) y 返回第二个分隔符前字符,分割字符串

substr(string a, int start [, int len]), substring(string a, int start [, int len])

2 搜索函数

locate(string substr, string str[, int pos]) 返回位置

instr(‘hello world’, ‘o’, -1) 从第三个参数位置开始数 返回位置

find_in_set(string str, string strList) 返回位置

instr(string str, string substr [, bigint position [, bigint occurrence ] ])

Purpose: Returns the position (starting from 1) of the first occurrence of a substring within a longer string.

Return type: int

regexp_extract(字符串, 正则表达式, 返回格式) 返回格式0 返回全部

字符串正则表达式解析函数。 功能强大

提取字母的正则表达式:([0-9]+)

提取数字的正则表达式:([a-z]+)

提取中文的正则表达式:([啊-龥]+)

select regexp_extract(‘wde我的qw’,’[啊-龥]+’,0) 我的

这个函数有点类似于 substring(str from ‘regexp’)

3 属性函数

cast(expr AS type)

describe table_name 表格描述

typeof() 返回参数类型

length(string a)

show partitions 表名

btrim(string a), btrim(string a, string chars_to_trim)去空格

space(int n)=repeat(’ ',n)

repeat(string str, int n) 复制字符串几次

lower(string a), lcase(string a)

initcap(‘hello world’) Hello World 单词首字母变大

regexp_replace(‘aaabbbaaa’, ‘b+’, ‘xyz’) aaaxyzaaa

replace(string initial, string target, string replacement)

translate(string input, string from, string to)

Purpose: Returns the input string with a set of characters replaced by another set of characters.

Return type: string

LPAD(‘ABCDE’,10,‘X’) XXXXXABCDE 从左边进行填充 rpad 右填充

reverse() 反转排列

replace(string initial, string target, string replacement)

日期处理:

now() =current_timestamp()

add_months(now(), 2) 月份+2

adddate(now(), 2) 天数+2

date_add(now(), 2) 同上

date_add(cast(‘2016-01-31’ as timestamp), interval 3 months)

date_part(‘year’/‘month’/‘hour’,now()) 去日期的年月日等

date_sub(now(), 2) 天数-2

datediff(timestamp enddate, timestamp startdate) 日期相减

day(‘2016-02-29’) 29

day(‘2016-02-028’) null

dayofmonth(timestamp date) dayofweek(timestamp date) dayofyear(timestamp date)

dayname(now()) 周几

to_date()

trunc(timestamp, string unit) 返回季度 月份 周 天 初始时刻

条件函数:

CASE a WHEN b THEN c [WHEN d THEN e]… [ELSE f] END

coalesce(type v1, type v2, …) 返回第一个不是null的参数,常用默认值来取代null值

decode(type expression, type search1, type result1 [, type search2, type result2 …] [, type default] )

if(boolean condition, type ifTrue, type ifFalseOrNull)

ifnull(type a, type ifNull)

isfalse(boolean) isnottrue(boolean)

isnotfalse(boolean) istrue(boolean)

isnull(type a, type ifNull)

nullif(expr1,expr2)

nvl(type a, type ifNull)

nvl2(type a, type ifNull, type ifNotNull)

e.g.:

replace(string initial, string target, string replacement)

,replace(ZZSPMD, ‘\n’, ‘;’) as ZZSPMD,

文档整理from:https://www.cloudera.com/documentation/enterprise/latest/topics/impala_string_functions.html#string_functions

https://www.cloudera.com/documentation/enterprise/latest/topics/impala_functions.html

你可能感兴趣的:(impala)