Как перенастроить spark / hadoop для чтения файлов, начинающихся с "_" (подчеркивание)? - PullRequest
0 голосов
/ 06 сентября 2018

Я знаю, что файлы начинаются с "_" и "."скрытые файлы.И hiddenFileFilter будет всегда применяться.Он добавлен внутри метода org.apache.hadoop.mapred.FileInputFormat.listStatus

Из исследования я понял, что мы можем использовать FileInputFormat.setInputPathFilter для установки нашего пользовательского PathFilter и что hiddenFileFilter всегда активен.

ДляС этой целью я создал класс MyPathFilter следующим образом:

class MyPathFilter implements PathFilter{
  public boolean accept(Path path) {
  // TODO Auto-generated method stub
  return path.getName();
  }
}

и я знаю, что перед чтением входных файлов следует использовать что-то вроде этого:

FileInputFormat.setInputPathFilter(job,MyPathFilter.class);

Но проблемас моим приложением обработки данных на основе Spark / Scala приложение / конвейер заключается в том, что мы читаем файлы в виде текста следующим образом:

val spark = context.sparkSession
import spark.implicits._
val rawDF = spark.read
            .text(list: _*)
            .map { r =>
                    //do something
              }.toDF()

Нет способа изменить способ чтения файлов, поскольку он связан сзахват метаданных из папок вложенной структуры расположения файла.Итак, если spark.read остается без изменений, как я могу убедиться, что могу также читать файлы с именем файла, начинающимся с "_" (подчеркивание)?Как использовать FileInputFormat.setInputPathFilter в этой ситуации?

Мы выполняем наши задания на AWS-EMR, поэтому можем ли мы параметризировать FileInputFormat.SetInputPathFilter при создании кластера EMR?Или мы можем использовать опции spark-submit, чтобы перенастроить и включить функцию «читать скрытые файлы»?

Пожалуйста, помогите мне с вашими ценными предложениями.Спасибо.

...