Spark SQL表达式内部可用函数与相关源码

本文探讨如何从Spark SQL源码中获取内置函数,强调代码中的表达式函数和字符串函数的使用,包括获取Column对象的方法。还介绍了自定义函数的功能,提醒读者注意不同Spark版本间的函数差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spark SQL表达式内部可用函数与相关源码

版权声明:本文为博主原创文章,未经博主允许不得转载。

手动码字不易,请大家尊重劳动成果,谢谢

作者:http://blog.csdn.net/wang_wbq

虽然标题写着是Spark SQL可用函数,但是我并不想直接把它们贴出来。代码是最好的老师,因此我要教大家自己从源码中获得这些函数。因为随着Spark的版本更新,内置函数会越来越多,单纯把一个版本的函数列出来可能会误导他人。所以本文所介绍的内容是各版本通用的。

代码中的表达式函数

使用代码中的表达式函数

我这里所指的表达式代码中的函数即sincosisnull这种可以在表达式中编写的函数:

df.select(sin($"a").as("sin_a"), cos($"a").as("cos_a")).filter(!isnull($"sin_a"))

获取当前使用版本的表达式函数集合

这个类型的函数是定义在org.apache.spark.sql.functions伴生对象中。

在使用时,只用import org.apache.spark.sql.functions._即可使用其中的所有表达式函数。在需要使用这种类型的函数时,只需要打开这个类即可查找你所需要的函数。

比如sin函数的定义为:

  /**
   * @param e angle in radians
   * @return sine of the angle, as if computed by `java.lang.Math.sin`
   *
   * @group math_funcs
   * @since 1.4.0
   */
  def sin(e: Column): Column = withExpr { Sin(e.expr) }

  /**
   * @param columnName angle in radians
   * @return sine of the angle, as if computed by `java.lang.Math.sin`
   *
   * @group math_funcs
   * @since 1.4.0
   */
  def sin(columnName: String): Column = sin(Column(columnName))

有两个重载版本,第一个重载版本sin(e: C

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值