Hive SQL支持多種函數,這些函數可以幫助您進行數據處理和分析。以下是一些常用的Hive SQL函數:
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首次出現的位置。replace(string str, string pattern, string replacement)
:在字符串str中查找并替換所有出現的模式pattern為replacement。abs(int i)
和 abs(float f)
:返回數字的絕對值。acos(float f)
、asin(float f)
和 atan(float f)
:分別返回數字的反余弦、反正弦和反正切值。ceil(float f)
和 floor(float f)
:分別返回大于或等于數字f的最小整數和小于或等于數字f的最大整數。cos(float f)
、sin(float f)
和 tan(float f)
:分別返回數字的余弦、正弦和正切值。exp(float f)
:返回e的f次冪。log(float f)
和 log10(float f)
:分別返回數字的自然對數和以10為底的對數。pow(float base, float exponent)
:返回base的exponent次冪。round(float f)
和 round(decimal d, int scale)
:分別返回四舍五入后的浮點數和十進制數。sqrt(float f)
:返回數字的平方根。rand()
和 rand(int seed)
:分別返回0到1之間的隨機浮點數和指定種子生成的隨機浮點數序列。sum(int i)
、sum(float f)
、sum(decimal d)
:計算數值列的總和。avg(int i)
、avg(float f)
、avg(decimal d)
:計算數值列的平均值。max(int i)
、max(float f)
、max(decimal d)
和 max(string str)
:返回每組中的最大值。min(int i)
、min(float f)
、min(decimal d)
和 min(string str)
:返回每組中的最小值。count(int i)
、count(string str)
和 count(*)
:計算行數或非空字符串的數量。current_date()
和 current_timestamp()
:分別返回當前日期和時間。from_unixtime(int unixtime)
和 to_unixtime(timestamp ts)
:分別將Unix時間戳轉換為日期時間格式和將日期時間格式轉換為Unix時間戳。date_format(timestamp ts, string format)
:將日期時間ts格式化為指定格式的字符串。dayofmonth(timestamp ts)
、dayofweek(timestamp ts)
、dayofyear(timestamp ts)
和 month(timestamp ts)
:分別返回日期時間ts的月份中的某天、星期幾、一年中的第幾天和月份。hour(timestamp ts)
、minute(timestamp ts)
和 second(timestamp ts)
:分別返回日期時間ts的小時、分鐘和秒。date_add(date d, int interval)
和 date_sub(date d, int interval)
:分別向日期d中添加或減去指定的時間間隔。next_day(date d, string weekday)
:返回從日期d開始的下一個指定星期幾的日期。last_day(date d)
:返回日期d所在月份的最后一天。cast(timestamp ts as date)
和 cast(date d as timestamp)
:將日期時間類型轉換為日期類型或將日期類型轉換為日期時間類型。此外,Hive SQL還支持其他一些函數,如聚合函數(如sum_col1
、avg_col2
等,用于對列進行聚合計算)、窗口函數(如row_number()
、rank()
等,用于在結果集中為每行分配一個唯一的序號)以及用戶自定義函數(UDF)等。
請注意,以上列出的函數可能因Hive版本的不同而略有差異。在實際使用中,建議查閱您所使用的Hive版本的官方文檔以獲取準確的函數列表和用法說明。