1.编写要处理的自定义函数
1.接收单列参数的自定义函数
val is_empty = (col: String) => {
col == null || col == ""
}
2.接收多列参数的自定义函数
val is_all_empty = (col1: String, col2: String) => {
is_empty(col1) && is_empty(col2)
}
2.注册udf
1.引入udf依赖
import org.apache.spark.sql.functions._
2.注册
val udf_is_empty = udf(is_empty)
val udf_is_all_empty = udf(is_all_empty)
3.使用自定义udf函数
1.单列参数的udf函数示例
df.select(udf_is_empty(df("name")).as("name_is_empty"))
2.多列参数的udf函数示例
df.select(udf_is_all_empty(df("name"), df("age")).as("name_is_all_empty"))
4.总结
通过自定义udf函数,你可以实现更加丰富的功能,下面给一个spark dataframe默认实现的一些函数