对于非匿名函数写法
spark.udf.register("is_yg_dabiao", isYGDaBiao(_: String, _: String): String)
对于非匿名函数的注册,一般是函数名需要与我们的自定义函数一致,参数列表中的形参名称可以用下划线代替
对于匿名函数写法
spark
.udf.register("is_yg_dabiao", (a: String, b: String) => a.toInt + b.toInt)
对于匿名函数的注册,"=>" 这个符号左边的部分可以只写形参列表(注意不要写返回值类型)
DSL风格下的udf调用 及 取别名
import org.apache.spark.sql.functions.callUDF
import org.apache.spark.sql.{DataFrame, SparkSession}
def main(args: Array[String]): Unit = {
/** 环境 */
val spark: SparkSession = SparkSession.builder().getOrCreate()
import spark.implicits._
/** 数据 */
val sourceDF =spark.read
.option("sep", ",")