Spark 1.6 中的 UDF 重新分配给 val 错误
UDF in Spark 1.6 Reassignment to val error
我正在使用 Spark 1.6
下面的udf用于清理地址数据。
sqlContext.udf.register("cleanaddress", (AD1:String,AD2: String, AD3:String)=>Boolean = _.matches("^[a-zA-Z0-9]*$"))
UDF 名称:cleanaddress
三个输入参数来自 DataFrame 列(AD1、AD2 和 AD3)。
谁能帮我解决以下错误。
我正在尝试编写接受三个参数(数据帧的 3 个地址列)的 udf,计算并仅提供过滤记录。
Error:
Error:(38, 91) reassignment to val
sqlContext.udf.register("cleanaddress", (AD1:String, AD2: String, AD3:String)=>Boolean = _.matches("^[a-zA-Z0-9]*$"))
您给定的代码的逻辑不是很清楚。您可以做的是 return 一个有效地址数组,如下所示:
sqlContext.udf.register("cleanaddress", (AD1:String, AD2: String, AD3:String)=> Seq(AD1,AD2,AD3).filter(_.matches("^[a-zA-Z0-9]*$")))
请注意,这将 return 一个复杂的列(即数组)
我正在使用 Spark 1.6
下面的udf用于清理地址数据。
sqlContext.udf.register("cleanaddress", (AD1:String,AD2: String, AD3:String)=>Boolean = _.matches("^[a-zA-Z0-9]*$"))
UDF 名称:cleanaddress 三个输入参数来自 DataFrame 列(AD1、AD2 和 AD3)。
谁能帮我解决以下错误。
我正在尝试编写接受三个参数(数据帧的 3 个地址列)的 udf,计算并仅提供过滤记录。
Error:
Error:(38, 91) reassignment to val
sqlContext.udf.register("cleanaddress", (AD1:String, AD2: String, AD3:String)=>Boolean = _.matches("^[a-zA-Z0-9]*$"))
您给定的代码的逻辑不是很清楚。您可以做的是 return 一个有效地址数组,如下所示:
sqlContext.udf.register("cleanaddress", (AD1:String, AD2: String, AD3:String)=> Seq(AD1,AD2,AD3).filter(_.matches("^[a-zA-Z0-9]*$")))
请注意,这将 return 一个复杂的列(即数组)