Hive 窗口函数

(一) Hive 内置函数及其操作

1、Hive 的内置函数可以分为几大类:

·数学函数:如 abs(), round(), ceil(), floor() 等。

·字符串函数:如 concat(), length(), upper(), lower(), trim() 等。

·日期函数:如 year(), month(), day(), date_add(), date_sub() 等。

·聚合函数:如 sum(), count(), avg(), max(), min(), group_concat() 等。

·条件函数:如 if(), case when, isnull(), coalesce() 等。

·类型转换函数:如 cast(), convert() 等。

·其他函数:如 hash(), get_json_object(), explode() 等。

2、 Hive 内置函数的使用

·字符串函数l

SELECT

    concat(first_name, ' ', last_name) as full_name,

    upper(last_name) as upper_last_name,

    length(address) as address_length

FROM users;

·数学函数

SELECT

    round(salary, 2) as rounded_salary,

    abs(-100) as absolute_value

FROM  employees;

·日期函数

SELECT

    current_date as today,

    year('2023-10-23') as year_from_date,

    date_add('2023-10-23', 7) as date_after_7_days

FROM  dummy_table;

·聚合函数

SELECT

    department,

    sum(salary) as total_salary,

    avg(salary) as average_salary

FROM  employees

GROUP BY department;

·条件函数

SELECT

    name,

    salary,

    if(salary > 50000, 'High', 'Low') as salary_level

FROM employees;

·类型转换函数

SELECT

    cast(age as string) as age_string,

    convert(date_column, 'yyyy-MM-dd') as formatted_date

FROM  users;

(二)内置函数介绍


1、字符串函数

·concat(str1, str2, ...): 连接两个或多个字符串。

·length(string A): 返回字符串A的长度。

·upper(string A): 将字符串A转换为大写。

·lower(string A): 将字符串A转换为小写。

·trim(string A): 去除字符串A的前导和尾随空格。

·substring(string A, int start, int len): 从字符串A中提取子字符串。

2、数学函数

·abs(x): 返回数值x的绝对值。

·round(double a): 对double类型的数值进行四舍五入。

·ceil(double a): 返回大于或等于数值a的最小整数。

·floor(double a): 返回小于或等于数值a的最大整数。

·rand(): 返回一个0到1之间的随机数。

3、日期函数

·current_date: 返回当前日期。

·year(date/timestamp): 返回日期或时间戳的年份。

·month(date/timestamp): 返回日期或时间戳的月份。

·day(date/timestamp): 返回日期或时间戳的日。

·date_add(date/timestamp str, int days): 在日期或时间戳上增加指定的天数。

·date_sub(date/timestamp str, int days): 在日期或时间戳上减去指定的天数。

4、聚合函数

·sum(col): 计算指定列的总和。

·count(col): 计算指定列的非空值数量。

·avg(col): 计算指定列的平均值。

·max(col): 返回指定列的最大值。

·min(col): 返回指定列的最小值。

5、条件函数

·if(boolean testCondition, T valueTrue, T valueFalseOrNull): 如果条件为真,则返回valueTrue,否则返回valueFalseOrNull。

·case when ... then ... [when ... then ...] [else ...] end: 根据条件进行多分支选择。

类型转换函数

·cast(expr as type): 将表达式expr转换为指定的类型。

6、其他函数

·get_json_object(json_string, json_path): 从JSON字符串中提取指定路径的值。

explode(col): 将数组或map类型的列转换为多行。

  • 40
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值