Я пытаюсь выполнить некоторую обработку текста, используя Spark RDD.Spark - Как правильно обрабатывать ошибку в RDD.map()?
Формат входного файла:
2015-05-20T18:30 <some_url>/?<key1>=<value1>&<key2>=<value2>&...&<keyn>=<valuen>
Я хочу, чтобы извлечь некоторые поля из текста и преобразовывать их в формат CSV, как:
<value1>,<value5>,<valuek>,<valuen>
Следующий код, как я делаю это:
val lines = sc.textFile(s"s3n://${MY_BUCKET}/${MY_FOLDER}/test/*.gz")
val records = lines.map { line =>
val mp = line.split("&")
.map(_.split("="))
.filter(_.length >= 2)
.map(t => (t(0), t(1))).toMap
(mp.get("key1"), mp.get("key5"), mp.get("keyk"), mp.get("keyn"))
}
Я хотел бы знать, что если какая-либо строка входного текста неправильного формата или i nvalid, то функция map()
не может вернуть допустимое значение. Это должно очень распространяться в обработке текста, какова наилучшая практика для решения этой проблемы?
к сожалению, почему вы переназначение a Попробуйте в Ли? Семантика в этом случае точно такая же. –