Apache spark ApacheSpark-映射函数中异常处理的工作原理

Apache spark ApacheSpark-映射函数中异常处理的工作原理,apache-spark,Apache Spark,我正在尝试对输入数据进行url解码。很少有记录能被很好地解码,但当我在更大的数据上尝试这种方法时,它给出了错误。我尝试了异常处理来丢弃错误数据,但一次又一次地得到相同的错误 val decodedVal = convertedVal22.map(s => doWork(s)) def doWork(param : String) : String = { var x9 = "" try { var y = java.net.URLDecoder.decode(p

我正在尝试对输入数据进行url解码。很少有记录能被很好地解码,但当我在更大的数据上尝试这种方法时,它给出了错误。我尝试了异常处理来丢弃错误数据,但一次又一次地得到相同的错误

val decodedVal = convertedVal22.map(s => doWork(s))

def doWork(param : String) : String = 
{

   var x9 = ""
   try {
     var y = java.net.URLDecoder.decode(param, "UTF-8")
     x9 = y
    }

    return x9
}
错误:

URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "%2"

在catch块中需要运行时异常

def doWork(param : String) : String = {
var x9 = ""
try {
    var y = java.net.URLDecoder.decode(param, "UTF-8")
    x9 = y
    return x9
}
catch {   

            case runtime: RuntimeException => 
            {
                ""
            }
}
然后用非空的过滤它

 val decodedVal = convertedVal22.map(s => doWork(s)).filter(_.nonEmpty)    

您的
catch
块在哪里?这不应该编译。它是在没有catch块的情况下编译的,我认为catch不是必需的。你可以。如果没有
catch
block.errrrrrr,则不会捕获任何异常。还有一件事,如果发生错误,我不需要任何东西。因此,我使用了catch{return”“},但给出了error'error:value isDefinedAt不是Nothing的成员'