Запись в Azure хранилище BLOB-объектов. Все выглядит хорошо, но создает столько временных файлов - PullRequest
0 голосов
/ 08 февраля 2020

Следовал коду написанному по этой ссылке. https://gist.github.com/Zifah/ba0c3771069a11ba53969b000b038b82/revisions

Создает так много временных файлов. Пожалуйста, помогите.

1 Ответ

0 голосов
/ 12 февраля 2020

Это ожидаемое поведение при запуске любого задания зажигания для создания этих файлов.

Когда включена фиксация транзакций DBIO, файлы метаданных, начинающиеся с start и commit будет сопровождать файлы данных, созданные Apache заданиями Spark. Как правило, вы не должны изменять эти файлы напрямую. Вместо этого используйте команду VACUUM для очистки файлов.

Комбинация ниже трех свойств поможет отключить запись всех транзакционных файлов, начинающихся с "_".

  1. Мы можем отключить журналы транзакций для записи искрового паркета, используя

spark. sql .sources.commitProtocolClass = org. apache .spark. sql .execution.datasources.SQLHadoopMapReduceCommitProtocol

Это поможет отключить зафиксированные и запущенные файлы, но все равно будут генерироваться файлы _SUCCESS, _common_metadata и _metadata.

Мы можем отключить файлы _common_metadata и _metadata, используя

parquet.enable.summary-metadata = false

Мы также можем отключить файл _SUCCESS, используя

mapreduce.fileoutputcommitter.marksuccessfuljobs = false

Для получения дополнительной информации см. " Транзакционные записи в облачное хранилище с DBIO"и" Stop Azure Блоки данных для автоматического создания файлов"и" Как предотвратить _success и _committed файлы в моем выводе записи?".

Надеюсь, это поможет. Сообщите нам, если у вас возникнут дополнительные вопросы.

...