Hive 函数
!!!_a前面是类型
返回值 | 类型转换函数 | 描述 |
type |
cast(expr as ) |
expr转换成各种类型 |
binary |
bigary('string_a') |
将string_a转换为二进制 |
double |
round(double_a,d) |
返回对a四舍五入并保留d位小数位的值 |
binary |
round(double_a) |
四舍五入a值 |
bigint |
floor(double a) |
a向下取整 |
double |
rand() |
返回一个double型随机数 |
double |
power(double a,double p) |
a的p次幂 |
double |
abs(double a) |
计算a的绝对值 |
1.1 日期函数:
返回值 | 函数 | 描述 |
string |
from_unixtime(a) |
将a一连串数字转换成时间 |
int |
unix_timestamp() |
获得本地时间 |
bigint |
unix_timestamp('a') |
将a日期转换成时间戳 |
string |
to_date('a') |
将a日期,返回日期部分 |
int |
year('a') |
将a日期,返回年份 |
int |
datediff() |
计算开始时间到结束时间相差的天数 |
string |
date_add(string stardate,intdays) |
从开始时间加上days |
string |
date_sub(string startdate,intdays) |
从开始时间减去days |
date |
current_date |
返回当前时间的日期 |
timestamp | current_timestamp | 返回当前时间戳 |
string |
date_format() |
按指定格式返回时间date |
1.2 集合函数
返回值 | 函数 | 描述 |
int |
size(Map<K.V>) |
返回map中键值对个数 |
int |
size(Array) |
返回数组的长度 |
array |
map_keys(Map<K.V>) |
返回map中的所有key |
array |
map_values(Map<K.V>) |
返回map中的所有value |
boolean |
array_contains(Array, value) |
如该数组Array包含value返回true。,否则返回false |
array |
sort_array(Array) |
对数组进行排序 |
实例:hive> select size(array(1,1,2,3,4));
!!!注意都是小括号哈
1.3 条件函数
返回值 | 函数 | 描述 |
T |
if(boolean testCondition, T valueTrue, T valueFalseOrNull) |
如果testCondition 为true就返回valueTrue,否则返回valueFalseOrNull |
T |
nvl(T value, T default_value) |
value为NULL返回default_value,否则返回value |
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=ture就返回b,c= ture就返回d,否则返回e |
boolean |
isnull( a ) |
如果a为null就返回true,否则返回false |
boolean |
isnotnull ( a ) |
如果a为非null就返回true,否则返回false |
1.4 聚合函数
返回值 | 函数 | 描述 |
N rows |
explode(array) |
对于array中的每个元素生成一行且包含该元素 |
N rows |
explode(MAP) |
每行对应每个map键值对 其中一个字段是map的键,另一个字段是map的值 |
N rows |
posexplode(ARRAY) |
与explode类似,不同的是还返回各元素在数组中的位置 |
N rows |
stack(INT n, v_1, v_2, ..., v_k) |
把k列转换成n行,每行有k/n个字段,其中n必须是常数 |
tuple |
json_tuple(jsonStr, k1, k2, ...) |
从一个JSON字符串中获取多个键并作为一个元组返回,与get_json_object不同的是此函数能一次获取多个键值 |
string | concat() | 连接字符串 |
实例 |
concat(year('1993-3-2'),'-',month('1231-6-4')) |
|
int |
quarter('1889-5-2') |
根据日期划分季度 |