SUM | --计算汇总值
DECIMAL
--计算窗口中expr之和
sum([distinct] <expr>) over ([partition_clause]
[orderby_clause] [frame_clause])
| 计算汇总值。
DOUBLE |
COALESCE | coalesce(<expr1>, <expr2>, ...)
| 从左至右的顺序对输入的参数进行逐一检查,一旦遇到第一个非NULL的值,就会立即返回该值,并不再继续检查后面的参数。 |
COUNT | -- 计算记录数
bigint count([distinct
--计算窗口中的记录数
bigint count(*) over ([partition_clause]
[orderby_clause] [frame_clause])
bigint count([distinct] <expr>[,...]) over
([partition_clause] [orderby_clause] [frame_clause])
| 计算记录数。 |
FIELD | T field(struct <s>, string <fieldName>)
--样例
select (named_struct('f1', 'hello', 'f2', 3).f1)
| 获取STRUCT对象中成员变量的取值。 |
SUBSTR | string substr(string <str>, bigint <start_position>
[, bigint <length>])
| 返回字符串str从**start_position 开始,长度为length **的子串。 |
MAX | --计算最大值
max(<colname>)
--计算窗口中的最大值
max(<expr>) over([partition_clause] [orderby_clause]
[frame_clause])
| 计算最大值。 |
INDEX | index(<var1>[<var2>])
--样例
select array('a','b','c')[2];
select str_to_map("test1=1,test2=2",
',', ':')["test1"];
| 返回MAP或者List类型参数中满足指定条件的Value |
CONCAT | array<T> concat(array<T> <a>, array<T> <b>[,...])
string concat(string <str1>, string <str2>[,...])
| 将多个ARRAY数组中的所有元素连接在一起,生成一个新的ARRAY数组,或将多个字符串连接在一起,生成一个新的字符串。 |
GET_JSON_OBJECT | string get_json_object(string <json, string <path)
| 在一个标准JSON字符串中,按照指定方式抽取指定的字符串。 |
SPLIT_PART | string split_part(string <str>, string <separator>,
bigint <start>[, bigint <end>])
| 依照分隔符separator拆分字符串str,返回从start部分到end部分的子串(闭区间)。 |
AVG | --计算平均值
DECIMAL
--计算窗口中expr的平均值。
double avg([distinct] double <expr>) over
([partition_clause] [orderby_clause] [frame_clause])
decimal avg([distinct] decimal <expr>) over
([partition_clause] [orderby_clause] [frame_clause])
| 计算平均值。
DOUBLE avg() |
ROUND | double
<decimal_places>])
| 四舍五入到指定小数点位置。
decimal round([, bigint |
LENGTH | bigint length(string <str>)
| 计算字符串str的长度。 str:必填。STRING类型。如果输入为BIGINT、DOUBLE、DECIMAL或DATETIME类型,则会隐式转换为STRING类型后参与运算。 |
REPLACE | string replace(string <str>, string <old>,
string <new>)
| 将字符串中与指定字符串匹配的子串替换为另一字符串 - str:必填。STRING类型。待替换的字符串。如果输入支持转换为STRING类型的数据类型,则会隐式转换为STRING类型参与运算。
- old:必填。待比较的字符串。
- new:必填。替换后的字符串。
|
TRIM | string trim(string <str>[,<trimChars>])
string trim([BOTH] [<trimChars>] from <str>)
| 去除字符串的左右两端字符。
从str的左右两端去除字符: - 如果未指定trimChars,则默认去除空格字符。
- 如果指定了trimChars,则以trimChars中包含的字符作为一个集合,从str的左右两端去除尽可能长的所有字符都在集合trimChars中的子串。
- str:必填。STRING类型。待去除左右两端字符的字符串。如果输入为BIGINT、DECIMAL、DOUBLE或DATETIME类型,则会隐式转换为STRING类型后参与运算。
- trimChars:可选。String类型。待去除的字符。
|
PERCENTILE_APPROX | double percentile_approx (double <colname[, double
<weight], <p [, <B]))
--以数组形式返回多个百分位近似计算结果。array<double
--percentile_approx (double <colname
[, double <weight],array(<p1 [, <p2...])
[, <B])
| 使用PERCENTILE_APPROX函数计算近似百分位数 |
TO_CHAR | string to_char(datetime <date>, string <format>)
| 将日期按照指定格式转换为字符串。 |
CEIL | bigint ceil(<value>)
| 向上取整,返回不小于输入值value的最小整数。 |
MIN | --计算最小值
min(<colname>)
--计算窗口中的最小值
min(<expr>) over([partition_clause] [orderby_clause]
[frame_clause])
| 计算最小值。 |
CONCAT_WS | string concat_ws(string <separator>, string <str1>,
string <str2>[,...])
string concat_ws(string <separator>, array<string>
<a>)
| 返回将参数中的所有字符串或ARRAY数组中的元素按照指定的分隔符连接在一起的结果 |
SPLIT | split(<str>, <pat>, [<trimTailEmpty>])
| 通过pat将str分割后返回数组。 |
REGEXP_EXTRACT | string regexp_extract(string <source>, string
<pattern>[, bigint <groupid>])
| 将字符串source按照pattern的分组规则进行字符串匹配,返回第groupid个组匹配到的字符串内容。 |
REGEXP_SUBSTR | string regexp_substr(string <source>, string
<pattern>[, bigint <start_position>[, bigint
<occurrence>]])
| 返回从start_position位置开始,source中第occurrence次匹配指定pattern的子串。 |
INSTR | bigint instr(string <str1>, string <str2>[, bigint
<start_position>[, bigint <nth_appearance>]])
| 计算子串str2在字符串str1中的位置。 |
STDDEV_SAMP | --计算样本标准差
double stddev_samp(double <colname>)
--计算窗口中expr的标准差
double stddev_samp([distinct] <expr>) over
([partition_clause] [orderby_clause] [frame_clause])
| 计算样本标准差。 |
TOLOWER | string tolower(string <source>)
| 将字符串source中的大写字符转换为对应的小写字符。 |
ARG_MAX | arg_max(<valueToMaximize>, <valueToReturn>)
| 返回valueToMaximize最大值对应行的valueToReturn。 |
NAMED_STRUCT | struct named_struct(string <name1>, T1 <value1>,
string <name2>, T2 <value2>[, ...])
| 使用指定的name、value列表建立STRUCT。 |
MD5 | string md5(string <str>)
| 计算字符串str的MD5值。 |
ANY_VALUE | any_value(<colname>)
| 在指定范围内任选一个值返回。 |
NULLIF | T nullif(T <expr1>, T <expr2>)
| 比较expr1和expr2的值,二者相等时返回NULL,否则返回expr1。 |
EXPLODE | explode (<var>)
| 将一行数据转为多行的UDTF。 |
LOG | double log(<base>, <x>)
| 计算以base为底的x的对数。 |
FROM_UNIXTIME | datetime from_unixtime(bigint <unixtime)
| FROM_UNIXTIME函数支持将数字类型的UNIX时间日期值转为DATETIME类型日期值 |
ARRAY | array array(<value>,<value>[, ...])
| 使用指定的值构造ARRAY数组。 |
COLLECT_SET | array collect_set(<colname)
| 将colname指定的列值聚合为一个无重复元素的数组。 |
TO_JSON | string to_json(<expr)
| 将给定的复杂类型expr,以JSON字符串格式输出。 |
ABS | bigint
| BS函数支持获取输入参数(number)的绝对值,确保输出总是正数或零。
double |
PERCENTILE | double percentile(bigint <colname>, <p>)
--以数组形式返回多个百分位精确计算结果。
array percentile(bigint <colname>, array(<p1>
[, <p2>...]))
| 计算精确百分位数,适用于小数据量。先对指定列升序排列,然后取精确的第p位百分数。p必须在0和1之间。 |
POW | double
| 计算x的y次方,即x^y 。
decimal pow(,) |
UNIX_TIMESTAMP | bigint unix_timestamp(datetime
string <date>)
| 将日期date转化为整型的UNIX格式的日期时间值。
date |
ARRAY_JOIN | array_join(array<T> <a>, <delimiter>[,
<nullreplacement>])
| 将ARRAY数组a中的元素使用delimiter拼接为字符串。当数组中元素为NULL时,用nullreplacement替代,没有设置nullreplacement时,会忽略NULL元素。 |
TOUPPER | string toupper(string <source>)
| 将字符串source中的小写字符转换为对应的大写字符。 |
SUBSTRING_INDEX | string substring_index(string <str>, string
<separator>, int <count>)
| 截取字符串str第count个分隔符之前的字符串。如果count为正,则从左边开始截取。如果count为负,则从右边开始截取。 |
COVAR_SAMP | double covar_samp(<colname1>, <colname2>)
| 计算指定两个数值列的样本协方差。 |
FLOOR | bigint floor(<number>)
| 向下取整,返回不大于number的最大整数值。 |
TRANSFORM | array<R> transform(array<T> <a>, function<T, R>
<func>)
| 将ARRAY数组a的元素利用func进行转换,返回一个新的ARRAY数组。 |
GREATEST | greatest(<var1>, <var2>[,...])
| 用于比较一组值,并返回其中最大的数值。 |
STDDEV | --计算总体标准差
double stddev(double <colname>)
decimal stddev(decimal <colname>)
--计算窗口中expr的总体标准差
double stddev
([partition_clause] [orderby_clause] [frame_clause])
decimal stddev
([partition_clause] [orderby_clause] [frame_clause])
| 计算总体标准差。
stddev_pop([distinct]) over
stddev_pop([distinct]) over |
SIZE | int size(array<T> <a>)
int size(map<K, V> <b> )
| 返回指定MAP中的K/V对数或者Array的元素个数。 |
COLLECT_LIST | array collect_list(<colname)
| 将colname指定的列值聚合为一个数组。 |
ARG_MIN | arg_min(<valueToMinimize>, <valueToReturn>)
| 返回valueToMinimize最小值对应行的valueToReturn。 |
DECODE | decode(<expression>, <search>, <result>[, <search>,
<result>]...[, <default>])
string decode(binary <str, string <charset)
| DECODE函数根据参数的不同,既能实现if-then-else 分支选择的功能,也能实现将str按照charset格式进行解码的功能。 |
MAP | map(K, V) map(K <key1>, V <value1>, K <key2>, V
<value2>[, ...])
| 使用给定的Key-Value对生成MAP。 |
FROM_JSON | from_json(<jsonStr>, <schema>)
| 根据JSON字符串jsonStr和schema信息,返回ARRAY、MAP或STRUCT类型。 |
REGEXP_COUNT | bigint regexp_count(string <source, string
<pattern[, bigint <start_position])
| 计算指定字符在字符串中出现的次数。 |
FILTER | array<T filter(array<T <a, function<T,boolean <func)
| 将ARRAY数组a中的元素利用func进行过滤,返回一个新的ARRAY数组。 |
LEAST | least(<var1>, <var2>[,...])
| 返回输入参数中的最小值。 |
SHIFTLEFT | int shiftleft(tinyint
<number2>)
bigint shiftleft(bigint <number1>, int <number2>)
| 按位左移(<<)。
smallint |
UUID | string uuid()
| 返回一个随机ID |
ARRAY_MAX | T array_max(array<T> <a>)
| 计算ARRAY数组a中的最大元素。 |
VARIANCE | double variance(<colname>)
| 计算指定数值列的方差。 |
VAR_POP | double var_pop(<colname>)
| 计算指定数值列的方差。 |
ARRAY_CONTAINS | boolean array_contains(array<T> <a>, value <v>)
| 判断ARRAY数组a中是否存在元素v。 |
PARSE_URL | string parse_url(string <url>, string <part>[,
string <key>])
| 对url解析后,按照part提取信息。 |
MEDIAN | --计算中位数
double median(double <colname>)
decimal median(decimal <colname>)
--计算窗口中expr的中位数。
median(<expr>) over ([partition_clause]
[orderby_clause] [frame_clause])
| 计算中位数。 |
MAP_KEYS | array<K> map_keys(map<K, V> <a>)
| 将MAP对象a中的所有Key生成ARRAY数组。 |
SQRT | double
| 计算number的平方根。
decimal sqrt() |
REVERSE | string
| 返回倒序字符串或数组。
array reverse(string |
STR_TO_MAP | str_to_map([string <mapDupKeyPolicy,] <text [,
<delimiter1 [, <delimiter2]])
| 将数据转换为MAP格式,使用分隔符1(delimiter1)将目标字符串分割成Key-Value对,然后使用分隔符2(delimiter2)分割每个Key-Value对的Key和Value。 |
LOCATE | bigint locate(string <substr>, string <str>[, bigint
<start_pos>])
| 在str中查找substr的位置。您可以通过start_pos指定开始查找的位置,从1开始计数。 |
MAP_VALUES | array<V> map_values(map<K, V> <a>)
| 将MAP对象a中的所有Value生成ARRAY数组。 |
WEEKDAY | bigint weekday (datetime <date>)
| 返回date日期是当前周的第几天。 |
VAR_SAMP | double var_samp(<colname)
| 计算指定数值列的样本方差 |
ARRAY_DISTINCT | array<T> array_distinct(array<T> <a>)
| 去除ARRAY数组a中的重复元素。 |
LPAD | string lpad(string <str1, int <length, string <str2)
| 使用LPAD函数,用字符串str2将字符串str1向左补足到length位 |
DATEPART | bigint datepart(date
string <datepart>)
| 提取日期date中符合指定时间单位datepart的值。
datetime |
FIND_IN_SET | bigint find_in_set(string <str1>, string <str2>)
| 查找字符串str1在以逗号(,)分隔的字符串str2中的位置,从1开始计数。 |
UNIQUE_ID | string unique_id()
| 返回一个随机的唯一ID |
ARRAY_POSITION | bigint array_position(array<T> <a>, T <element>)
| 计算元素element在ARRAY数组a中第一次出现的位置。ARRAY数组元素位置编号自左往右,从1开始计数。 |
STRUCT | struct struct(<value1>,<value2>[, ...])
| 使用指定value列表建立STRUCT。 |
TRANSFORM_VALUES | map<K, V2> transform_values(map<K, V1> <input>,
function<K, V1, V2> <func>)
| 对输入MAP对象input进行变换,保持Key不变,通过func计算新的Value值。 |
POSEXPLODE | posexplode(array<T> <a>)
| 将ARRAY数组a展开,每个Value一行,每行两列分别对应数组从0开始的下标和数组元素。 |
LOG2 | double log2(<number>)
| 返回以2为底,number的对数。 |
HOUR | int hour(datetime
| 返回日期小时部分的值。
timestamp |
LN | double
| 计算number的自然对数。
decimal ln() |
LOG10 | double log10(<number>)
| 返回以10为底,number的对数。 |
SLICE | array<T> slice(array<T> <a>, <start>, <length>)
| 对ARRAY数组切片,截取从start位置开始长度为length的元素组成新的ARRAY数组。 |
ARRAY_REPEAT | array<T> array_repeat(T <element>, int <count>)
| 返回将指定元素重复指定次数后的ARRAY数组。 |
YEAR | int year(datetime
| 返回日期date的年。
timestamp |
ARRAY_REDUCE | R array_reduce(array<T> <a>, buf <init>, function
<buf, T, buf> <merge>, function<buf, R> <final>)
| 对ARRAY数组a中的元素进行聚合。 |
MAP_ENTRIES | array<struct<K, V>> map_entries(map<K, V> <a>):
| 将MAP对象a的K、Value映射转换为STRUCT结构数组。 |
EXP | double
| 计算number的指数函数。
decimal exp() |
SHIFTRIGHT | int shiftright(tinyint
<number2>)
bigint shiftright(bigint <number1>, int <number2>)
| 按位右移(>>)。
smallint |
DATE_FORMAT | string date_format(date
string <format)
| DATE_FORMAT支持将DATE、TIMESTAMP和STRING类型的数据,转换为指定格式的字符串。
timestamp |
REGEXP_EXTRACT_ALL | array<T> regexp_extract_all(string <source>, string
<pattern>[,bigint <group_id>])
| 在字符串中查找所有出现的正则表达式匹配模式的子字符串,并把找到的字符串以数组返回。 |
HEX | string hex(<number>)
| 将数值或字符串转换为十六进制格式。 |
TRANSFORM_KEYS | map<K2, V> transform_keys([string <mapDupKeyPolicy>,]
map<K1, V> <input>, function<K1, V, K2> <func>)
| 对MAP对象input进行变换,保持Value不变,通过func计算新的Key值。 |
LASTDAY | datetime lastday(datetime <date>)
| 取date所在月的最后一天,截取到天,时分秒部分为00:00:00 。 |
TO_MILLIS | bigint to_millis(datetime
| 将给定日期date转换为以毫秒为单位的UNIX时间戳。
timestamp); |
MAP_FILTER | map<K, V> map_filter(map<K, V> <input>, function
<K, V, boolean> <predicate>)
| 将MAP对象input的元素进行过滤,只保留满足predicate条件的元素。 |
MONTH | int month(datetime
| 返回一个日期的月份。
timestamp |
WEEKOFYEAR | bigint weekofyear (datetime <date>)
| 返回日期date位于那一年的第几周。周一作为一周的第一天。 |
ARRAY_UNION | array<T> array_union(array<T> <a>, array<T> <b>)
| 计算ARRAY数组a和b的并集,并去掉重复元素。 |
ARRAY_INTERSECT | array<T> array_intersect(array<T> <a>, array<T> <b>)
| 用于计算两个ARRAY数组之间的交集,并返回一个包含两个数组中都存在的相同值的新数组。 |
FROM_UTC_TIMESTAMP | timestamp from_utc_timestamp({any primitive type}*,
string <timezone>)
| 将一个UTC时区的时间戳转换成一个指定时区的时间戳,即将一个UTC时区的时间戳按照指定的时区显示。 |
INLINE | inline(array<struct<f1:T1, f2:T2[, ...]>>)
| 将给定的STRUCT数组展开。每个数组元素对应一行,每行每个STRUCT元素对应一列。 |
ARRAY_MIN | T array_min(array<T> <a>)
| 计算ARRAY数组a中的最小元素。 |
QUARTER | int quarter (datetime
| 返回一个日期的季度,范围是1~4。
timestamp |
MINUTE | int minute(datetime
| 返回日期分钟部分的值。
timestamp |
ARRAY_SORT | array<T> array_sort(array<T> <a>, function<T, T,
bigint> <comparator>)
| 将ARRAY数组a中的元素根据comparator进行排序。 |
ARRAY_REMOVE | array<T> array_remove(array<T> <a>, T <element>)
| 在ARRAY数组a中删除与element相等的元素。 |
CORR | double corr(<col1>, <col2>)
| 计算两列数据的皮尔逊系数(Pearson Correlation Coefficien)。 |
|
|
|
SUM | --计算汇总值
DECIMAL
--计算窗口中expr之和
sum([distinct] <expr>) over ([partition_clause]
[orderby_clause] [frame_clause])
| 计算汇总值。
DOUBLE |
COALESCE | coalesce(<expr1>, <expr2>, ...)
| 从左至右的顺序对输入的参数进行逐一检查,一旦遇到第一个非NULL的值,就会立即返回该值,并不再继续检查后面的参数。 |
COUNT | -- 计算记录数
bigint count([distinct
--计算窗口中的记录数
bigint count(*) over ([partition_clause]
[orderby_clause] [frame_clause])
bigint count([distinct] <expr>[,...]) over
([partition_clause] [orderby_clause] [frame_clause])
| 计算记录数。
all]) |
FIELD | T field(struct <s>, string <fieldName>)
--样例
select (named_struct('f1', 'hello', 'f2', 3).f1)
| 获取STRUCT对象中成员变量的取值。 |
SUBSTR | string substr(string <str>, bigint <start_position>
[, bigint <length>])
| 返回字符串str从**start_position 开始,长度为length **的子串。 |
MAX | --计算最大值
max(<colname>)
--计算窗口中的最大值
max(<expr>) over([partition_clause] [orderby_clause]
[frame_clause])
| 计算最大值。 |
INDEX | index(<var1>[<var2>])
--样例
select array('a','b','c')[2];
select str_to_map("test1=1,test2=2",
',', ':')["test1"];
| 返回MAP或者List类型参数中满足指定条件的Value |
CONCAT | array<T> concat(array<T> <a>, array<T> <b>[,...])
string concat(string <str1>, string <str2>[,...])
| 将多个ARRAY数组中的所有元素连接在一起,生成一个新的ARRAY数组,或将多个字符串连接在一起,生成一个新的字符串。 |
GET_JSON_OBJECT | string get_json_object(string <json, string <path)
| 在一个标准JSON字符串中,按照指定方式抽取指定的字符串。 |
SPLIT_PART | string split_part(string <str>, string <separator>,
bigint <start>[, bigint <end>])
| 依照分隔符separator拆分字符串str,返回从start部分到end部分的子串(闭区间)。 |
AVG | --计算平均值
DECIMAL
--计算窗口中expr的平均值。
double avg([distinct] double <expr>) over
([partition_clause] [orderby_clause] [frame_clause])
decimal avg([distinct] decimal <expr>) over
([partition_clause] [orderby_clause] [frame_clause])
| 计算平均值。
DOUBLE avg() |
ROUND | double
<decimal_places>])
| 四舍五入到指定小数点位置。
decimal round([, bigint |
LENGTH | bigint length(string <str>)
| 计算字符串str的长度。 str:必填。STRING类型。如果输入为BIGINT、DOUBLE、DECIMAL或DATETIME类型,则会隐式转换为STRING类型后参与运算。 |
REPLACE | string replace(string <str>, string <old>,
string <new>)
| 将字符串中与指定字符串匹配的子串替换为另一字符串 - str:必填。STRING类型。待替换的字符串。如果输入支持转换为STRING类型的数据类型,则会隐式转换为STRING类型参与运算。
- old:必填。待比较的字符串。
- new:必填。替换后的字符串。
|
TRIM | string trim(string <str>[,<trimChars>])
string trim([BOTH] [<trimChars>] from <str>)
| 去除字符串的左右两端字符。
从str的左右两端去除字符: - 如果未指定trimChars,则默认去除空格字符。
- 如果指定了trimChars,则以trimChars中包含的字符作为一个集合,从str的左右两端去除尽可能长的所有字符都在集合trimChars中的子串。
- str:必填。STRING类型。待去除左右两端字符的字符串。如果输入为BIGINT、DECIMAL、DOUBLE或DATETIME类型,则会隐式转换为STRING类型后参与运算。
- trimChars:可选。String类型。待去除的字符。
|
PERCENTILE_APPROX | double percentile_approx (double <colname[, double
<weight], <p [, <B]))
--以数组形式返回多个百分位近似计算结果。array<double
--percentile_approx (double <colname
[, double <weight],array(<p1 [, <p2...])
[, <B])
| 使用PERCENTILE_APPROX函数计算近似百分位数 |
TO_CHAR | string to_char(datetime <date>, string <format>)
| 将日期按照指定格式转换为字符串。 |
CEIL | bigint ceil(<value>)
| 向上取整,返回不小于输入值value的最小整数。 |
MIN | --计算最小值
min(<colname>)
--计算窗口中的最小值
min(<expr>) over([partition_clause] [orderby_clause]
[frame_clause])
| 计算最小值。 |
CONCAT_WS | string concat_ws(string <separator>, string <str1>,
string <str2>[,...])
string concat_ws(string <separator>, array<string>
<a>)
| 返回将参数中的所有字符串或ARRAY数组中的元素按照指定的分隔符连接在一起的结果 |
SPLIT | split(<str>, <pat>, [<trimTailEmpty>])
| 通过pat将str分割后返回数组。 |
REGEXP_EXTRACT | string regexp_extract(string <source>, string
<pattern>[, bigint <groupid>])
| 将字符串source按照pattern的分组规则进行字符串匹配,返回第groupid个组匹配到的字符串内容。 |
REGEXP_SUBSTR | string regexp_substr(string <source>, string
<pattern>[, bigint <start_position>[, bigint
<occurrence>]])
| 返回从start_position位置开始,source中第occurrence次匹配指定pattern的子串。 |
INSTR | bigint instr(string <str1>, string <str2>[, bigint
<start_position>[, bigint <nth_appearance>]])
| 计算子串str2在字符串str1中的位置。 |
STDDEV_SAMP | --计算样本标准差
double stddev_samp(double <colname>)
--计算窗口中expr的标准差
double stddev_samp([distinct] <expr>) over
([partition_clause] [orderby_clause] [frame_clause])
| 计算样本标准差。 |
TOLOWER | string tolower(string <source>)
| 将字符串source中的大写字符转换为对应的小写字符。 |
ARG_MAX | arg_max(<valueToMaximize>, <valueToReturn>)
| 返回valueToMaximize最大值对应行的valueToReturn。 |
NAMED_STRUCT | struct named_struct(string <name1>, T1 <value1>,
string <name2>, T2 <value2>[, ...])
| 使用指定的name、value列表建立STRUCT。 |
MD5 | string md5(string <str>)
| 计算字符串str的MD5值。 |
ANY_VALUE | any_value(<colname>)
| 在指定范围内任选一个值返回。 |
NULLIF | T nullif(T <expr1>, T <expr2>)
| 比较expr1和expr2的值,二者相等时返回NULL,否则返回expr1。 |
EXPLODE | explode (<var>)
| 将一行数据转为多行的UDTF。 |
LOG | double log(<base>, <x>)
| 计算以base为底的x的对数。 |
FROM_UNIXTIME | datetime from_unixtime(bigint <unixtime)
| FROM_UNIXTIME函数支持将数字类型的UNIX时间日期值转为DATETIME类型日期值 |
ARRAY | array array(<value>,<value>[, ...])
| 使用指定的值构造ARRAY数组。 |
COLLECT_SET | array collect_set(<colname)
| 将colname指定的列值聚合为一个无重复元素的数组。 |
TO_JSON | string to_json(<expr)
| 将给定的复杂类型expr,以JSON字符串格式输出。 |
ABS | bigint
| BS函数支持获取输入参数(number)的绝对值,确保输出总是正数或零。
double |
PERCENTILE | double percentile(bigint <colname>, <p>)
--以数组形式返回多个百分位精确计算结果。
array percentile(bigint <colname>, array(<p1>
[, <p2>...]))
| 计算精确百分位数,适用于小数据量。先对指定列升序排列,然后取精确的第p位百分数。p必须在0和1之间。 |
POW | double
| 计算x的y次方,即x^y 。
decimal pow(,) |
UNIX_TIMESTAMP | bigint unix_timestamp(datetime
string <date>)
| 将日期date转化为整型的UNIX格式的日期时间值。
date |
ARRAY_JOIN | array_join(array<T> <a>, <delimiter>[,
<nullreplacement>])
| 将ARRAY数组a中的元素使用delimiter拼接为字符串。当数组中元素为NULL时,用nullreplacement替代,没有设置nullreplacement时,会忽略NULL元素。 |
TOUPPER | string toupper(string <source>)
| 将字符串source中的小写字符转换为对应的大写字符。 |
SUBSTRING_INDEX | string substring_index(string <str>, string
<separator>, int <count>)
| 截取字符串str第count个分隔符之前的字符串。如果count为正,则从左边开始截取。如果count为负,则从右边开始截取。 |
COVAR_SAMP | double covar_samp(<colname1>, <colname2>)
| 计算指定两个数值列的样本协方差。 |
FLOOR | bigint floor(<number>)
| 向下取整,返回不大于number的最大整数值。 |
TRANSFORM | array<R> transform(array<T> <a>, function<T, R>
<func>)
| 将ARRAY数组a的元素利用func进行转换,返回一个新的ARRAY数组。 |
GREATEST | greatest(<var1>, <var2>[,...])
| 用于比较一组值,并返回其中最大的数值。 |
STDDEV | --计算总体标准差
double stddev(double <colname>)
decimal stddev(decimal <colname>)
--计算窗口中expr的总体标准差
double stddev
([partition_clause] [orderby_clause] [frame_clause])
decimal stddev
([partition_clause] [orderby_clause] [frame_clause])
| 计算总体标准差。
stddev_pop([distinct]) over
stddev_pop([distinct]) over |
SIZE | int size(array<T> <a>)
int size(map<K, V> <b> )
| 返回指定MAP中的K/V对数或者Array的元素个数。 |
COLLECT_LIST | array collect_list(<colname)
| 将colname指定的列值聚合为一个数组。 |
ARG_MIN | arg_min(<valueToMinimize>, <valueToReturn>)
| 返回valueToMinimize最小值对应行的valueToReturn。 |
DECODE | decode(<expression>, <search>, <result>[, <search>,
<result>]...[, <default>])
string decode(binary <str, string <charset)
| DECODE函数根据参数的不同,既能实现if-then-else 分支选择的功能,也能实现将str按照charset格式进行解码的功能。 |
MAP | map(K, V) map(K <key1>, V <value1>, K <key2>, V
<value2>[, ...])
| 使用给定的Key-Value对生成MAP。 |
FROM_JSON | from_json(<jsonStr>, <schema>)
| 根据JSON字符串jsonStr和schema信息,返回ARRAY、MAP或STRUCT类型。 |
REGEXP_COUNT | bigint regexp_count(string <source, string
<pattern[, bigint <start_position])
| 计算指定字符在字符串中出现的次数。 |
FILTER | array<T filter(array<T <a, function<T,boolean <func)
| 将ARRAY数组a中的元素利用func进行过滤,返回一个新的ARRAY数组。 |
LEAST | least(<var1>, <var2>[,...])
| 返回输入参数中的最小值。 |
SHIFTLEFT | int shiftleft(tinyint
<number2>)
bigint shiftleft(bigint <number1>, int <number2>)
| 按位左移(<<)。
smallint |
UUID | string uuid()
| 返回一个随机ID |
ARRAY_MAX | T array_max(array<T> <a>)
| 计算ARRAY数组a中的最大元素。 |
VARIANCE | double variance(<colname>)
| 计算指定数值列的方差。 |
VAR_POP | double var_pop(<colname>)
| 计算指定数值列的方差。 |
ARRAY_CONTAINS | boolean array_contains(array<T> <a>, value <v>)
| 判断ARRAY数组a中是否存在元素v。 |
PARSE_URL | string parse_url(string <url>, string <part>[,
string <key>])
| 对url解析后,按照part提取信息。 |
MEDIAN | --计算中位数
double median(double <colname>)
decimal median(decimal <colname>)
--计算窗口中expr的中位数。
median(<expr>) over ([partition_clause]
[orderby_clause] [frame_clause])
| 计算中位数。 |
MAP_KEYS | array<K> map_keys(map<K, V> <a>)
| 将MAP对象a中的所有Key生成ARRAY数组。 |
SQRT | double
| 计算number的平方根。
decimal sqrt() |
REVERSE | string
| 返回倒序字符串或数组。
array reverse(string |
STR_TO_MAP | str_to_map([string <mapDupKeyPolicy,] <text [,
<delimiter1 [, <delimiter2]])
| 将数据转换为MAP格式,使用分隔符1(delimiter1)将目标字符串分割成Key-Value对,然后使用分隔符2(delimiter2)分割每个Key-Value对的Key和Value。 |
LOCATE | bigint locate(string <substr>, string <str>[, bigint
<start_pos>])
| 在str中查找substr的位置。您可以通过start_pos指定开始查找的位置,从1开始计数。 |
MAP_VALUES | array<V> map_values(map<K, V> <a>)
| 将MAP对象a中的所有Value生成ARRAY数组。 |
WEEKDAY | bigint weekday (datetime <date>)
| 返回date日期是当前周的第几天。 |
VAR_SAMP | double var_samp(<colname)
| 计算指定数值列的样本方差 |
ARRAY_DISTINCT | array<T> array_distinct(array<T> <a>)
| 去除ARRAY数组a中的重复元素。 |
LPAD | string lpad(string <str1, int <length, string <str2)
| 使用LPAD函数,用字符串str2将字符串str1向左补足到length位 |
DATEPART | bigint datepart(date
string <datepart>)
| 提取日期date中符合指定时间单位datepart的值。
datetime |
FIND_IN_SET | bigint find_in_set(string <str1>, string <str2>)
| 查找字符串str1在以逗号(,)分隔的字符串str2中的位置,从1开始计数。 |
UNIQUE_ID | string unique_id()
| 返回一个随机的唯一ID |
ARRAY_POSITION | bigint array_position(array<T> <a>, T <element>)
| 计算元素element在ARRAY数组a中第一次出现的位置。ARRAY数组元素位置编号自左往右,从1开始计数。 |
STRUCT | struct struct(<value1>,<value2>[, ...])
| 使用指定value列表建立STRUCT。 |
TRANSFORM_VALUES | map<K, V2> transform_values(map<K, V1> <input>,
function<K, V1, V2> <func>)
| 对输入MAP对象input进行变换,保持Key不变,通过func计算新的Value值。 |
POSEXPLODE | posexplode(array<T> <a>)
| 将ARRAY数组a展开,每个Value一行,每行两列分别对应数组从0开始的下标和数组元素。 |
LOG2 | double log2(<number>)
| 返回以2为底,number的对数。 |
HOUR | int hour(datetime
| 返回日期小时部分的值。
timestamp |
LN | double
| 计算number的自然对数。
decimal ln() |
LOG10 | double log10(<number>)
| 返回以10为底,number的对数。 |
SLICE | array<T> slice(array<T> <a>, <start>, <length>)
| 对ARRAY数组切片,截取从start位置开始长度为length的元素组成新的ARRAY数组。 |
ARRAY_REPEAT | array<T> array_repeat(T <element>, int <count>)
| 返回将指定元素重复指定次数后的ARRAY数组。 |
YEAR | int year(datetime
| 返回日期date的年。
timestamp |
ARRAY_REDUCE | R array_reduce(array<T> <a>, buf <init>, function
<buf, T, buf> <merge>, function<buf, R> <final>)
| 对ARRAY数组a中的元素进行聚合。 |
MAP_ENTRIES | array<struct<K, V>> map_entries(map<K, V> <a>):
| 将MAP对象a的K、Value映射转换为STRUCT结构数组。 |
EXP | double
| 计算number的指数函数。
decimal exp() |
SHIFTRIGHT | int shiftright(tinyint
<number2>)
bigint shiftright(bigint <number1>, int <number2>)
| 按位右移(>>)。
smallint |
DATE_FORMAT | string date_format(date
string <format)
| DATE_FORMAT支持将DATE、TIMESTAMP和STRING类型的数据,转换为指定格式的字符串。
timestamp |
REGEXP_EXTRACT_ALL | array<T> regexp_extract_all(string <source>, string
<pattern>[,bigint <group_id>])
| 在字符串中查找所有出现的正则表达式匹配模式的子字符串,并把找到的字符串以数组返回。 |
HEX | string hex(<number>)
| 将数值或字符串转换为十六进制格式。 |
TRANSFORM_KEYS | map<K2, V> transform_keys([string <mapDupKeyPolicy>,]
map<K1, V> <input>, function<K1, V, K2> <func>)
| 对MAP对象input进行变换,保持Value不变,通过func计算新的Key值。 |
LASTDAY | datetime lastday(datetime <date>)
| 取date所在月的最后一天,截取到天,时分秒部分为00:00:00 。 |
TO_MILLIS | bigint to_millis(datetime
| 将给定日期date转换为以毫秒为单位的UNIX时间戳。
timestamp); |
MAP_FILTER | map<K, V> map_filter(map<K, V> <input>, function
<K, V, boolean> <predicate>)
| 将MAP对象input的元素进行过滤,只保留满足predicate条件的元素。 |
MONTH | int month(datetime
| 返回一个日期的月份。
timestamp |
WEEKOFYEAR | bigint weekofyear (datetime <date>)
| 返回日期date位于那一年的第几周。周一作为一周的第一天。 |
ARRAY_UNION | array<T> array_union(array<T> <a>, array<T> <b>)
| 计算ARRAY数组a和b的并集,并去掉重复元素。 |
ARRAY_INTERSECT | array<T> array_intersect(array<T> <a>, array<T> <b>)
| 用于计算两个ARRAY数组之间的交集,并返回一个包含两个数组中都存在的相同值的新数组。 |
FROM_UTC_TIMESTAMP | timestamp from_utc_timestamp({any primitive type}*,
string <timezone>)
| 将一个UTC时区的时间戳转换成一个指定时区的时间戳,即将一个UTC时区的时间戳按照指定的时区显示。 |
INLINE | inline(array<struct<f1:T1, f2:T2[, ...]>>)
| 将给定的STRUCT数组展开。每个数组元素对应一行,每行每个STRUCT元素对应一列。 |
ARRAY_MIN | T array_min(array<T> <a>)
| 计算ARRAY数组a中的最小元素。 |
QUARTER | int quarter (datetime
| 返回一个日期的季度,范围是1~4。
timestamp |
MINUTE | int minute(datetime
| 返回日期分钟部分的值。
timestamp |
ARRAY_SORT | array<T> array_sort(array<T> <a>, function<T, T,
bigint> <comparator>)
| 将ARRAY数组a中的元素根据comparator进行排序。 |
ARRAY_REMOVE | array<T> array_remove(array<T> <a>, T <element>)
| 在ARRAY数组a中删除与element相等的元素。 |
CORR | double corr(<col1>, <col2>)
| 计算两列数据的皮尔逊系数(Pearson Correlation Coefficien)。 |
ASCII | bigint ascii(string <str>)
| 返回字符串str第一个字符的ASCII码。 |
DAY | int day(datetime
| 返回一个日期的天。
timestamp |
CHR | string chr(bigint <ascii>)
| 将指定ASCII码转换为字符。 |
ASCII | bigint ascii(string <str>)
| 返回字符串str第一个字符的ASCII码。 |
DAY | int day(datetime
| 返回一个日期的天。
timestamp |
CHR | string chr(bigint <ascii>)
| 将指定ASCII码转换为字符。 |