1.编写要处理的自定义函数

1.接收单列参数的自定义函数

  1. val is_empty = (col: String) => {
  2. col == null || col == ""
  3. }

2.接收多列参数的自定义函数

  1. val is_all_empty = (col1: String, col2: String) => {
  2. is_empty(col1) && is_empty(col2)
  3. }

2.注册udf

1.引入udf依赖

  1. import org.apache.spark.sql.functions._

2.注册

  1. val udf_is_empty = udf(is_empty)
  2. val udf_is_all_empty = udf(is_all_empty)

3.使用自定义udf函数

1.单列参数的udf函数示例

  1. df.select(udf_is_empty(df("name")).as("name_is_empty"))

2.多列参数的udf函数示例

  1. df.select(udf_is_all_empty(df("name"), df("age")).as("name_is_all_empty"))

4.总结

通过自定义udf函数,你可以实现更加丰富的功能,下面给一个spark dataframe默认实现的一些函数

https://www.cnblogs.com/lyy-blog/p/9549597.html