Сколько разделов создает Spark при загрузке таблицы Hive - PullRequest
1 голос
/ 02 апреля 2020

Даже если это таблица Hive или файл HDFS, когда Spark считывает данные и создает фрейм данных, я думал, что число разделов в RDD / dataframe будет равно количеству фреймов в HDFS. Но когда я выполнил тест с внешней таблицей Hive, я увидел, что это число отличается от количества файлов частей. Число разделов в кадре данных было 119. Таблица представляла собой таблицу разделов Hive, содержащую 150 файлов. , с минимальным размером файла 30 МБ и максимальным размером 118 МБ. Так что же тогда определяет количество разделов?

Ответы [ 3 ]

1 голос
/ 02 апреля 2020

Вы можете контролировать, сколько байтов Spark упаковывает в один раздел, установив spark.sql.files.maxPartitionBytes. Значение по умолчанию составляет 128 МБ, см. Spark Tuning .

0 голосов
/ 03 апреля 2020

Я думаю, что эта ссылка действительно отвечает на мой вопрос. Количество разделов зависит от количества разделенных разбиений, а разделение зависит от входного формата oop. https://intellipaat.com/community/7671/how-does-spark-partition-ing-work-on-files-in-hdfs

0 голосов
/ 02 апреля 2020

С размером блока в каждом блоке 128 МБ. Spark прочитает данные. Скажем, если размер вашей таблицы кустов составлял приблизительно 14,8 ГБ, тогда она разделит данные таблицы кустов на 128 МБ блоков и приведет к 119 разделам.

С другой стороны, ваша таблица кустов разделена так, что столбец раздела имеет 150 уникальные значения.

Таким образом, количество файлов деталей в кусте и количество разделов в искре не связаны.

...