Я использую версию Spark 1.4.1
. Я пытаюсь загрузить секционированную таблицу Hive в DataFrame, где в таблице Hive разбивается на номер year_week
, при сценарии у меня может быть 104 раздела.Загрузите куст секционированной таблицы в Spark Dataframe
Но я мог видеть, что DataFrame загружается данными в 200 разделов, и я понимаю, что это связано с тем, что по умолчанию значение spark.sql.shuffle.partitions
установлено в 200.
Я хотел бы знать, есть ли какой-либо хороший способ. Я могу загрузить таблицу Hive в Spark Dataframe с 104 разделами, убедившись, что Dataframe разбивается на year_week
во время самого времени загрузки Dataframe.
Причина моего ожидания в том, что я буду делать несколько объединений с огромными таблицами томов, где все разделены номером year_week
. Таким образом, при использовании Dataframe, разделенного на year_week
, число и загрузка соответственно сократят время от повторного разбиения их на year_week
.
Пожалуйста, дайте мне знать, если у вас есть предложения ко мне.
Спасибо.
Вы пробовали 'df.repartition ($" year_week ")'? –
да, я в состоянии сделать. Но перераспределение приводит к перетасовке данных, что в моем случае является более дорогостоящим. Поэтому я пытаюсь увидеть способ загрузки Dataframe с теми же разделами таблицы Hive во время самой загрузки. Я пытаюсь получить это, чтобы избежать переделки на Dataframe. Есть ли какая-либо стратегия разбиения, которую я могу инициализировать с помощью Dataframe? – sureshsiva
Теперь я вижу. Я ничего не знаю. Мы закончили загрузку каждого раздела как отдельного DataFrame, переделку и просто объединение кадров позже. Таким образом, мы как-то ограничили переделку на одного работника. –