Hive是一个基于Hadoop构建的数据仓库分析系统,它提供了丰富的函数来处理和分析数据。以下是一些Hive中的常用函数:
concat(string str1, string str2, ...):连接一个或多个字符串。substring(string str, int begin, int length):从字符串str的begin位置开始截取length长度的子串。lower(string str) 和 upper(string str):分别将字符串转换为小写和大写。trim(string str):去除字符串str两端的空白字符。length(string str):返回字符串str的长度。locate(string str, string pattern):在字符串str中查找模式pattern首次出现的位置。abs(int/decimal num):返回num的绝对值。acos(double num) 和 asin(double num) 和 atan(double num):分别返回num的反余弦、反正弦和反正切值。ceil(decimal num) 和 floor(decimal num):分别返回大于或等于num的最小整数和小于或等于num的最大整数。cos(double num) 和 sin(double num) 和 tan(double num):分别返回num的余弦、正弦和正切值。exp(double num):返回e的num次幂。log(double num) 和 log10(double num):分别返回num的自然对数和以10为底的对数。rand() 和 rand(int seed):分别返回一个[0.0, 1.0)之间的随机数和指定种子生成的随机数。round(decimal num):将num四舍五入到指定的小数位数。sqrt(double num):返回num的平方根。current_date() 和 current_timestamp():分别返回当前日期和时间。date_add(date date, int interval) 和 date_sub(date date, int interval):分别向日期date中添加或减去指定的时间间隔。dayofmonth(date date) 和 dayofweek(date date) 和 dayofyear(date date):分别返回日期date是月份的第几天、星期几和一年中的第几天。hour(timestamp timestamp) 和 minute(timestamp timestamp) 和 second(timestamp timestamp):分别返回时间戳timestamp的小时、分钟和秒数。month(date date) 和 year(date date):分别返回日期date的月份和年份。next_day(date date, string interval):返回给定日期date之后第一个指定间隔的天数的日期。unix_timestamp(date date) 和 from_unixtime(unix_timestamp timestamp):分别将日期和时间转换为Unix时间戳和将Unix时间戳转换为日期时间。avg(numeric col):计算数值列的平均值。count(string col) 和 count(int col) 和 count(bigint col):分别计算字符串列、整数列和长整型列的非空值数量。first_value(numeric col) 和 last_value(numeric col):分别返回数值列的第一行和最后一行的值。max(numeric col) 和 min(numeric col):分别计算数值列的最大值和最小值。sum(numeric col):计算数值列的总和。var_pop(numeric col) 和 var_samp(numeric col) 和 stddev_pop(numeric col) 和 stddev_samp(numeric col):分别计算数值列的样本方差、总体方差、样本标准差和总体标准差。collect_list(numeric col) 和 collect_set(numeric col):分别收集数值列的非空值到一个列表和一个集合中。此外,Hive还提供了其他一些函数,如if(boolean expr, string then_expr, string else_expr)用于条件判断,date_format(timestamp timestamp, string format)用于日期格式化等。请注意,Hive函数的具体语法和用法可能会因版本和配置的不同而有所差异。在使用时,建议查阅相关文档或参考示例以获取准确的信息。