我正在尝试使用以下代码在Databricks Community Edition中注册表:
import org.apache.spark.sql.functions.udf
val getDataUDF(url: String):Unit = udf(getData(url: String):Unit)
然而,我收到错误:
使用替代方法重载方法值udf:
答案 0 :(得分:2)
您的UDF语法看起来有点奇怪,在调用getData()
时不应该定义类型。另外,UDF的输入应该在方法本身内部。
例如,你有一个这样的方法getData
(它应该有一个返回值):
def getData(url: String): String = {...}
要将其变成udf,有两种方法:
将getData
重写为函数
val getData: (String => String) = {...}
val getDataUDF = udf(getData)
调用udf
中的getData
方法
val getDataUDF = udf((url: String) => {
getData(url)
})
这两种方式都应该有效,我个人认为方法1看起来好一点。