Я использовал искру с питоном, поэтому мне нужно сохранить файл паркета, содержащий результат искры

df
.coalesce(1)
.write
.save(save_path, format='parquet', mode='append'))

Это собрать данные и сохранить в HDFS как код формата паркета

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

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

Спасибо

4
hognkun 13 Ноя 2019 в 05:06

2 ответа

Coalesce использует существующие разделы, чтобы минимизировать объем перетасовываемых данных.


Repartition создает новые разделы и выполняет полное перемешивание. объединение приводит к разделам с разным объемом данных (иногда разделы имеют очень разные размеры), а повторное разделение приводит к разделам примерно одинакового размера.


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


В примере, который вы предоставили, coalesce () - лучший вариант. Coalesce () действительно лучший вариант, когда вам нужно установить количество разделов = 1.

Ваш код правильный и должен работать только с генерацией одного файла данных в качестве вывода

1
Martijn Pieters 13 Ноя 2019 в 15:15
Это верная и ясная информация, так же как и дополнительный комментарий: вы должны быть осторожны при использовании .coalesce(1), потому что все данные будут отправлены драйверу и могут вызвать ошибку памяти, если они не подходят.
 – 
Cesar A. Mostacero
13 Ноя 2019 в 20:10

Coalesce - это метод разделения данных во фрейме данных . Это в основном используется для уменьшения количества разделов в фрейме данных .

Вы можете обратиться к этой ссылке и ссылка для получения дополнительных сведений о coalesce и repartition

И да, если вы используете df.coalesce(1), он запишет только один файл (в вашем случае один паркетный файл)

0
Naga 13 Ноя 2019 в 05:27