Является ли один паркетный файл в папке партера разделом? - PullRequest
0 голосов
/ 29 марта 2020

Я сохранил свой фрейм данных в формате паркета

df.write.parquet('/my/path')

При проверке HDFS я вижу, что в каталоге паркет / my / path

есть 10 файлов part-xxx.snappy.parquet

Мой вопрос: соответствует ли один файл part-xxx.snappy.parquet разделу моего фрейма данных?

Ответы [ 2 ]

2 голосов
/ 29 марта 2020

Да, часть - ** файлы создаются на основе number of partitions в кадре данных при записи в HDFS.

Для проверки number of partitions в кадре данных:

df.rdd.getNumPartitions()

Для контроля количества файлов, записываемых в файловую систему, мы можем использовать .repartition (or) .coalesce() (or) dynamically в зависимости от нашего требования.

1 голос
/ 29 марта 2020

Да, это создает один файл на Spark-раздел.

Обратите внимание, что вы также можете разделить файлы по некоторому атрибуту:

df.write.partitionBy("key").parquet("/my/path")

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

...