2016-03-21 4 views
0

У меня возникают трудности с исключением исключения SAXParse при анализе XML-файлов.Избегание SAXParseException в Scala

Причина в том, что я обрабатываю тысячи тысяч XML-файлов, а иногда файл XML содержит ошибки.

Мне интересно, есть ли способ пропустить эти файлы XML и продолжить работу с теми, которые правильно построены.

Cheers!

+0

Это трудно помочь без подробностей контекста. Но общей идеей для любого решения является 'Try (...). Recover {case err: SAXParseException => ...}' – Zernike

ответ

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, которые не выполняют синтаксический анализ. Вы можете зарегистрировать их или просто удалить их.

Если вы хотите сделать что-то умнее, с исключением вы можете посмотреть на большой учебник о Скале here

Смежные вопросы