При обработке нескольких файлов параллельно с Spark я хотел бы узнать, из какого файла идет конкретная запись. Моя цель - назначить идентификатор файла (или, по крайней мере, имя файла) для каждой записи для целей внутреннего аудита. Есть какой-либо способ сделать это?
Я использую Spark Java API.
Да, вы можете использовать SparkContext.wholeTextFiles
который дает вам имя файла в качестве ключа и всего файла в качестве значения. Если sc
- это SparkContext (JavaSparkContext в вашем случае), просто вызовите sc.wholeTextFiles("path/to/dir/")
PS: Я ответил на аналогичный вопрос раньше и обнаружил, что у этой функции есть проблемы с чтением сжатых файлов (проверяется только с помощью gzip), поэтому имейте это в виду.