【问题标题】:Number of splits in dataset exceeds dataset split limit ,Dremio+Hive+Spark数据集中的分割数超过数据集分割限制,Dremio+Hive+Spark
【发布时间】:2019-11-06 06:47:10
【问题描述】:

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

【问题讨论】:

    标签: apache-spark hadoop hive dremio


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-04-18
      • 1970-01-01
      • 2020-08-19
      • 2020-08-14
      • 2020-01-29
      • 1970-01-01
      • 2021-05-20
      • 2017-06-30
      • 2018-03-23
      相关资源
      最近更新 更多