Можем ли мы использовать filename из wholeTextFile для сохранения фрейма данных?

#amazon-web-services #pyspark #amazon-emr

#amazon-web-services #pyspark #amazon-emr

Вопрос:

У меня есть несколько файлов в корзине S3 в формате ‘CHNC_P0BCDNAF_20200217’. Я хочу прочитать каждый файл один за другим и выполнить некоторую обработку в pyspark. После обработки я сохраняю обработанный файл parquet в папке datefolder, которая отделяется от имени файла. Обработка каждого файла должна быть отдельным заданием spark, например, для указанного выше файла datefolder будет 20200217.

Я могу разделить имя файла и дату из wholeTextFile, но не могу использовать их для создания папки с датой

Комментарии:

1. Я думаю, что я показал вам это в другом вопросе

2. Я не смог заставить работать коды и изменить его на python spark. Я не работал со scala

3. Заголовок вопроса и содержимое конфликтуют. Что, если в исходном вопросе я преобразовал это в pyspark? Хотя это не должно быть проблемой.

4. Мое требование похоже на то, что у меня есть несколько входных файлов в s3. Я хочу обрабатывать их один за другим и сохранять в папке вывода s3. Выходные папки похожи на то, что каждый файл должен быть сохранен в папке date. Я хочу создать выходные папки с данными из моего входного имени файла в формате, который я показывал ранее. Итак, я хочу передать filename и datefolders в качестве параметров моей команде отправки spark, которую я запускаю через службу конвейера данных.

5. плохой подход — это все и не обязательно

Ответ №1:

У меня есть решение для этого. Я использовал сценарий оболочки, чтобы перечислить все мои входные имена файлов в s3. Затем я выполнил свою работу spark, выполнив итерацию по каждому файлу. Я могу обрабатывать каждый файл как отдельное задание spark, передавая filename в качестве аргумента для задания spark. Я разделил имя файла и дату из самого wholetextfile и сохранил в своем фрейме данных. Спасибо