控制spark sql 1.6中写入外部配置单元表的文件数

g0czyy6m  于 2021-06-28  发布在  Hive
关注(0)|答案(0)|浏览(176)

我正在向apachespark1.6.3中的一个分区的外部配置单元表(format parquet)进行写入。我希望每个分区写一个文件(数据很小,我希望避免许多小文件的开销)。假设分区列是 date . 我可以这样做:

df
  .coalesce(1)
  .write.mode("overwrite").partitionBy("date")
  .insertInto(newTable)

但这让我的任务只有一个 insertInto 尽管创建了许多不同的文件。那么spark为什么不使用多个任务来编写文件,而不是使用一个任务来编写所有文件呢。
另一方面,如果我忽略 coalesce(1) ,我得到了大量的小文件每个Hive分区。
那么我怎样才能加速上面的代码呢?或者更一般地说,如何控制在插入配置单元表时创建的文件数(不使用 coalesce(1) )?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题