Количество разделов в наборе данных превышает предел разделения набора данных,Dremio+Hive+Spark

У нас есть стек, состоящий из Hadoop+Hive+Spark+Dremio, поскольку Spark записывает много файлов HDFS для одного раздела Hive (в зависимости от рабочих) . Dremio не работает при запросе таблицы, потому что превышено количество файлов HDFS, есть ли какие-либо способ решить эту проблему без необходимости вручную устанавливать меньшее количество рабочих в искре?(мы не хотим терять производительность и преимущества распределения искры) .

1 ответ

Решение

Вы можете использовать repartitionчто создаст 1 файл на раздел. Это гарантирует, что у вас будет хотя бы одна задача на раздел, что обеспечит достаточный параллелизм в вашей искровой задаче.

df.repartition($"a", $"b", $"c", $"d", $"e").write.partitionBy("a", "b", "c", "d", "e").mode(SaveMode.Append).parquet(s"$location")
Другие вопросы по тегам