Как отловить ошибки файла в Scala при чтении в Spark? - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть приложение, которое читает несколько файлов данных из вложенных структур каталогов: /example/to/data/file.Иногда эти каталоги могут не содержать данных, поврежденных данных и т. Д. Мне нужно отловить эти ошибки и подсчитать их, указав имя файла, каталог для этого файла и что это за ошибка.

В настоящее время, что я 'я делаю чтение всех файлов одновременно и создание кадра данных.Я не знаю, есть ли способ указать, могу ли я определить, какой файл пуст, какой файл поврежден, в каком каталоге нет данных, не читая его один за другим.Вот моя текущая реализация без обработки ошибок:

val dir = new File(inputPath)

val listBuffer = new ListBuffer[String]

for(f <- walkTree(dir) if f.getName.length() == 14) listBuffer.append("file://" + f.toString)

listBuffer.remove(0)
val schema = Schemas.data1

val recordDF = spark.sqlContext.createDataFrame(spark.sparkContext.textFile(listBuffer.mkString(","))
.map(x => UDF.getRecord1Row(x)), schema)

Как вы можете видеть, я читаю все данные за один раз, есть ли способ захвата ошибок, читая файлы все за один раз, или мне нужно сделатьцикл for и чтение каждого файла по одному.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...