UDF в Spark 1.6 Переназначение для ошибки val - PullRequest
0 голосов
/ 19 сентября 2019

Я использую 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).

Может кто-нибудь, пожалуйста, помогите мне исправить приведенную ниже ошибку.

Я пытаюсь написать udf, который принимает три параметра (3-адресный столбец данных кадра), вычислить и дать только записи фильтра.

Error:
Error:(38, 91) reassignment to val
    sqlContext.udf.register("cleanaddress", (AD1:String, AD2: String, AD3:String)=>Boolean = _.matches("^[a-zA-Z0-9]*$"))

1 Ответ

0 голосов
/ 19 сентября 2019

Ваша логика не совсем понятна для вашего кода.Что вы можете сделать, это вернуть массив действительных адресов, например:

sqlContext.udf.register("cleanaddress", (AD1:String, AD2: String, AD3:String)=> Seq(AD1,AD2,AD3).filter(_.matches("^[a-zA-Z0-9]*$")))

Обратите внимание, что это вернет сложный столбец (то есть массив)

...