不多说,直接上干货!
用户自定义函数
注册udf
我们可以使用Spark 支持的编程语言编写好函数,然后通过Spark SQL 内建的方法传递进来,非常便捷地注册我们自己的UDF
在Scala 和Python 中,可以利用语言原生的函数和lambda 语法的支持,而在Java 中,则需要扩展对应的UDF 类。
注册udf的功能已经移动到了sqlContext的udf对象上(Scala):
sqlContext.udf.register("strLen", (s: String) => s.length())
val tweetLength = sqlContext.sql("SELECT strLen('tweet') FROM tweets LIMIT 10")
Spark SQL 不仅有自己的UDF 接口,也支持已有的Apache Hive UDF:
hiveCtx.sql("CREATE TEMPORARY FUNCTION name AS class.function")