Apache Spark 提供了多種類型的函數,這些函數在數據處理和轉換過程中起著關鍵作用。以下是一些常見的 Spark 函數類型:
聚合函數(Aggregate Functions):
sum(): 對所有元素求和。avg(): 計算所有元素的平均值。count(): 統計元素的數量。max(): 找出所有元素中的最大值。min(): 找出所有元素中的最小值。stddev(): 計算所有元素的標準差。stddevPop(): 計算總體標準差。stddevSamp(): 計算樣本標準差。first(), last(): 分別返回第一個和最后一個元素。argMax(), argMin(): 分別返回最大值和最小值的索引。數學函數(Mathematical Functions):
abs(): 返回元素的絕對值。acos(), asin(), atan(): 分別返回反余弦、反正弦和反正切值。ceil(), floor(): 分別返回向上取整和向下取整的結果。cos(), sin(), tan(): 分別返回余弦、正弦和正切值。exp(): 返回自然指數。log(), log10(): 分別返回自然對數和以10為底的對數。pow(): 返回一個數的冪。round(): 四舍五入到指定的小數位數。sqrt(): 返回平方根。tanh(): 返回雙曲正切值。字符串函數(String Functions):
length(): 返回字符串的長度。lower(), upper(): 分別將字符串轉換為小寫和大寫。trim(): 去除字符串兩端的空白字符。concat(): 連接兩個或多個字符串。contains(): 檢查字符串是否包含另一個字符串。startsWith(), endsWith(): 檢查字符串是否以特定子串開頭或結尾。replace(): 在字符串中替換所有指定的子串。split(): 將字符串按照指定的分隔符拆分為數組。substr(): 從字符串中提取子串。indexOf(), lastIndexOf(): 查找子串在字符串中的位置。日期和時間函數(Date and Time Functions)(注:這些函數在 Spark 2.4 及更高版本中可用):
current_date(): 返回當前日期。current_timestamp(): 返回當前時間戳。date_format(): 將日期格式化為指定格式。date_add(), date_sub(): 分別向日期添加或減去指定的時間間隔。dayofweek(): 返回日期是星期幾(1 表示星期日,7 表示星期六)。month(), year(): 分別返回日期的月份和年份。quarter(): 返回日期所在的季度。to_date(): 將字符串或時間戳轉換為日期。集合函數(Set Functions)(注:這些函數在 Spark 2.0 及更高版本中可用):
collect_list(): 收集所有元素到一個列表中。collect_set(): 收集所有元素到一個集合中,重復元素會被去重。collect_map(): 收集所有鍵值對到一個映射中。size(): 返回集合或列表的大小。其他常用函數:
expr(): 允許用戶使用 SQL 表達式作為函數參數。posexplode(): 將數組或集合展開為多行。posexplode_array(): 專門用于展開數組的函數。broadcast(): 用于將變量廣播到所有工作節點。rand(): 生成一個隨機數。rand_between(): 生成一個指定范圍內的隨機數。hash(): 計算元素的哈希值。col(), expr(), input_file_name(): 這些函數用于從 DataFrame 或 Dataset 中提取列或執行表達式。請注意,上述函數可能因 Spark 版本的不同而略有差異。在實際使用中,建議查閱您所使用的 Spark 版本的官方文檔以獲取最準確的信息。