数据集中的拆分数量超过数据集拆分限制,Dremio + Hive + Spark

我们有一个由Hadoop + Hive + Spark + Dremio组成的堆栈,因为Spark为单个Hive分区写入多个HDFS文件(取决于工作人员),由于超出了HDFS文件数限制,因此在查询表时Dremio失败,有什么方法可以解决此问题而不必手动设置少量的spark工人?(我们不想失去spark的分布式性能和优势)。

sienchou 回答:数据集中的拆分数量超过数据集拆分限制,Dremio + Hive + Spark

您可以使用repartition来为每个分区创建1个文件。这将确保每个分区至少有1个任务,这将确保您的spark作业中保持足够的并行性。

df.repartition($"a",$"b",$"c",$"d",$"e").write.partitionBy("a","b","c","d","e").mode(SaveMode.Append).parquet(s"$location")
本文链接:https://www.f2er.com/3156558.html

大家都在问