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函数的具体语法和用法可能会因版本和配置的不同而有所差异。在使用时,建议查阅相关文档或参考示例以获取准确的信息。