方法 my_udf 有 return 语句;需要结果类型
method my_udf has return statement; needs result type
我读到在大多数情况下不需要为 udf 指定 return 类型,但如果您添加 return
语句,则有必要。
我有以下 udf,它在内部迭代一个列表,如果立即匹配 udf returns,我希望这样做。根据我在这里找到的其他答案,我尝试了以下两种方法来定义 return 类型:
def removeSalutation = udf((name: String) => String {
val salutationList = List("MRS", "MR", "MSTR", "MISS", "MS", "DR")
for(salutation <- salutationList){
if(name.endsWith(salutation)){
return name.dropRight(salutation.length())
}
}
return name
})
上面的脚本只是 return 一个错误
def removeSalutation = udf[String, String]((name: String) => {
val salutationList = List("MRS", "MR", "MSTR", "MISS", "MS", "DR")
for(salutation <- salutationList){
if(name.endsWith(salutation)){
return name.dropRight(salutation.length())
}
}
return name
})
上面的脚本一直在说:
error: method removeSalutation has return statement; needs result type
指定 return 类型的正确方法是什么?
单独定义函数如下:
def _removeSalutation(name: String) : String = {
val salutationList = List("MRS", "MR", "MSTR", "MISS", "MS", "DR")
for(salutation <- salutationList){
if(name.endsWith(salutation)){
return name.dropRight(salutation.length())
}
}
return name
}
val removeSalutation = udf(_removeSalutation _)
我读到在大多数情况下不需要为 udf 指定 return 类型,但如果您添加 return
语句,则有必要。
我有以下 udf,它在内部迭代一个列表,如果立即匹配 udf returns,我希望这样做。根据我在这里找到的其他答案,我尝试了以下两种方法来定义 return 类型:
def removeSalutation = udf((name: String) => String {
val salutationList = List("MRS", "MR", "MSTR", "MISS", "MS", "DR")
for(salutation <- salutationList){
if(name.endsWith(salutation)){
return name.dropRight(salutation.length())
}
}
return name
})
上面的脚本只是 return 一个错误
def removeSalutation = udf[String, String]((name: String) => {
val salutationList = List("MRS", "MR", "MSTR", "MISS", "MS", "DR")
for(salutation <- salutationList){
if(name.endsWith(salutation)){
return name.dropRight(salutation.length())
}
}
return name
})
上面的脚本一直在说:
error: method removeSalutation has return statement; needs result type
指定 return 类型的正确方法是什么?
单独定义函数如下:
def _removeSalutation(name: String) : String = {
val salutationList = List("MRS", "MR", "MSTR", "MISS", "MS", "DR")
for(salutation <- salutationList){
if(name.endsWith(salutation)){
return name.dropRight(salutation.length())
}
}
return name
}
val removeSalutation = udf(_removeSalutation _)