串联磁盘上的ORC分区文件?

时间:2018-07-04 00:09:40

标签: apache-spark amazon-athena orc

我正在使用Spark 2.3将一些CSV数据转换为ORC,以用于Amazon Athena;运行正常!雅典娜最适合的文件不是太小,因此,在稍微处理了数据之后,我使用Spark将分区合并为一个分区,然后再写入磁盘,如下所示:

df.coalesce(1).write.orc("out.orc", compression='zlib', mode='append')

这将导致单个ORC文件,该文件是与Athena一起使用的最佳文件大小。但是,合并步骤需要很长的时间。它增加了大约33%的时间来转换数据!

这显然是由于在保存到单个文件时Spark无法并行执行合并步骤。当我创建与可用CPU数量相同的分区时,ORC写入磁盘的速度要快得多!

我的问题是,我可以并行化ORC写入磁盘,然后以某种方式连接文件吗?这将使我能够并行执行写入和合并文件,而不必在单个CPU上压缩所有内容?

0 个答案:

没有答案