(一) 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类型的列转换为多行。