#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 и сохранил в своем фрейме данных. Спасибо