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函數的具體語法和用法可能會因版本和配置的不同而有所差異。在使用時,建議查閱相關文檔或參考示例以獲取準確的信息。