Hive的内置函数主要可以分为以下几类:
字符串处理函数:
length(string): 返回字符串的长度。substr(string, start, length): 从字符串的第start个位置开始截取length个字符。concat(string1, string2, ...): 连接两个或多个字符串。lower(string): 将字符串转换为小写。upper(string): 将字符串转换为大写。trim(string): 去除字符串两端的空白字符。like(string, pattern): 判断字符串是否与模式串匹配。regexp_extract(string, pattern, index): 从字符串中提取与正则表达式匹配的内容。数学函数:
abs(number): 返回数字的绝对值。acos(number): 返回数字的反余弦值。asin(number): 返回数字的反正弦值。atan(number): 返回数字的反正切值。ceil(number): 返回大于或等于数字的最小整数。cos(number): 返回数字的余弦值。exp(number): 返回自然数e的指数幂。floor(number): 返回小于或等于数字的最大整数。log(number): 返回数字的自然对数。log10(number): 返回数字的以10为底的对数。rand(): 返回0到1之间的随机数。round(number): 返回四舍五入后的数字。sin(number): 返回数字的正弦值。sqrt(number): 返回数字的平方根。tan(number): 返回数字的正切值。日期和时间函数:
current_date(): 返回当前日期。current_timestamp(): 返回当前时间戳。date_add(date, interval): 在日期上添加指定的时间间隔。date_sub(date, interval): 从日期中减去指定的时间间隔。dayofmonth(date): 返回日期是月份的第几天。dayofweek(date): 返回日期是星期几(1表示星期日,7表示星期六)。dayofyear(date): 返回日期是一年中的第几天。hour(timestamp): 返回时间戳的小时部分。minute(timestamp): 返回时间戳的分钟部分。month(date): 返回日期的月份部分。next_day(date, weekday): 返回给定日期之后的下一个指定星期几的日期。quarter(date): 返回日期的季度部分。second(timestamp): 返回时间戳的秒部分。unix_timestamp(date): 将日期转换为Unix时间戳。from_unixtime(unix_timestamp): 将Unix时间戳转换为日期。to_date(string): 将字符串转换为日期。to_timestamp(string): 将字符串转换为时间戳。聚合函数:
avg(numeric): 计算数值的平均值。count(string): 计算非空字符串的数量。count(distinct string): 计算非空字符串的不同值的数量。first_value(numeric): 返回某列的第一个非空值。last_value(numeric): 返回某列的最后一个非空值。max(numeric): 计算数值的最大值。min(numeric): 计算数值的最小值。sum(numeric): 计算数值的总和。var_pop(numeric): 计算数值的样本方差。var_samp(numeric): 计算数值的样本方差(与var_pop的区别在于分母是n-1)。stddev(numeric): 计算数值的标准差。stddev_pop(numeric): 计算数值的总体标准差。stddev_samp(numeric): 计算数值的样本标准差(与stddev_pop的区别在于分母是n-1)。其他函数:
if(boolean, string, string): 根据布尔值返回两个字符串中的一个。nullif(string, string): 如果两个字符串相等,则返回null,否则返回第一个字符串。case_when(boolean, string, ...): 根据多个条件返回不同的字符串值。expr(string): 解析并计算表达式。posexplode(array): 将数组展开为行和列的形式。json_tuple(string, string, ...): 将JSON字符串解析为多个字符串值。stack(string, string, ...): 将多个字符串值堆叠成一个数组。sort_array(array): 对数组进行排序。unique(array): 返回数组中的唯一值。布隆过滤器(string, string): 使用布隆过滤器检查一个元素是否可能存在于集合中。哈希(string, string): 计算两个字符串的哈希值。正则表达式_extract(string, string): 从字符串中提取与正则表达式匹配的内容。正则表达式_replace(string, string): 使用正则表达式替换字符串中的内容。地理空间函数(Hive 3.0及更高版本支持):如ST_Distance, ST_Intersects, ST_Within等,用于处理地理空间数据。请注意,Hive的内置函数可能会随着版本的更新而发生变化。建议查阅最新的Hive文档以获取最准确的信息。