Количество разделов в наборе данных превышает предел разделения набора данных,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")