在Scala中避免SAXParseException

时间:2016-03-21 11:18:30

标签: xml scala apache-spark

在解析XML文件时,我很难避免SAXParseException。

原因是我正在解析成千上万的XML文件,有时XML文件中包含错误。

我想知道是否有办法跳过这些XML文件并继续正确构建的文件。

干杯!

1 个答案:

答案 0 :(得分:0)

如果您有RDD [String]并将字符串解析为XML

rdd.flatMap{ s => 
   try {
      parse(s) // here you convert the string into your XML
   } catch {
      case SAXParseException() => 
         logError(...)
         None
   }
}

此处,flatmap的行为类似于地图和过滤器。它会填充我们解析失败的所有xmls。您可以记录它们或只是丢弃它们。

如果您希望在异常情况下更聪明地做一些事情,可以查看有关scala的精彩教程here