Количество разделений в наборе данных превышает предел разделения набора данных, Dremio + Hive + Spark - PullRequest
0 голосов
/ 05 ноября 2019

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

1 Ответ

0 голосов
/ 06 ноября 2019

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

df.repartition($"a", $"b", $"c", $"d", $"e").write.partitionBy("a", "b", "c", "d", "e").mode(SaveMode.Append).parquet(s"$location")
...