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 版本的官方文档以获取最准确的信息。