Переименование экспортированных файлов из Spark Job - PullRequest
1 голос
/ 12 апреля 2019

В настоящее время мы используем Spark Job для блоков данных, которые выполняют обработку на нашем озере данных в S3.Как только обработка завершена, мы экспортируем наш результат в корзину S3, используя обычную функцию df.write ()

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

Поскольку S3 не имеет функции переименования, мы сейчас используем boto3 для копирования и вставки файла с ожидаемым именем.Этот процесс очень сложный и не масштабируемый, так как на борту появляется больше клиентов.

Есть ли у нас лучшее решение для переименования экспортируемых файлов из spark в S3?

1 Ответ

0 голосов
/ 12 апреля 2019

Невозможно сделать это напрямую в сохранении Spark.

Spark использует формат файла Hadoop, который требует разделения данных - вот почему у вас есть файлы-части.Если файл достаточно мал, чтобы поместиться в память, можно обойти это преобразование в фрейм данных pandas и сохранить оттуда как csv.

df_pd = df.toPandas()
df_pd.to_csv("path")
...