Spark UDF:
关于UDF:UDF:User Defined Function,用户自定义函数。
创建测试用DataFrame
// 构造测试数据,有两个字段、名字和年龄
略。。。
// 注册一张user表
userDF.createOrReplaceTempView("user")
Spark Sql - UDF用法
下面的UDF的功能是计算某列的长度,该列的类型为String
spark.udf.register("strLen", (str: String) => str.length())
spark.sql("select name,strLen(name) as name_len from user").show
+-----+--------+
| name|name_len|
+-----+--------+
| Leo| 3|
|Marry| 5|
| Jack| 4|
| Tom| 3|
+-----+--------+
DataFrame - UDF用法
DataFrame的udf方法和Spark Sql的名字一样,但属于不同的类
在org.apache.spark.sql.functions里
import org.apache.spark.sql.functions._
//注册自定义函数(通过匿名函数)
val strLen = udf((str: String)