9.5 用户自定义函数

用户自定义函数,也叫 UDF,可以让我们使用 Python/Java/Scala 注册自定义函数,并在 SQL 中调用。

Spark SQL UDF

可以使用 Spark 支持的编程语言编写好函数,然后通过 Spark SQL 内建的方法传递进来,非常便捷地注册我们自己的 UDF。

在 Scala 和 Python 中,可以利用语言原生的函数和 lambda 语法的支持,而在 Java 中,则需要扩展对应的 UDF 类。
UDF 能够支持各种数据类型,返回类型也可以与调用时的参数类型完全不一样。

字符串长度 UDF:

Hive UDF

要使用 Hive UDF,应该使用 HiveContext,而不能使用常规的 SQLContext。

要注册一个 Hive UDF,只需调用 hiveCtx.sql(“CREATE TEMPORARY FUNCTION name AS class.function”) 。