标签: performance apache-spark rdd
我有一个聚合数据的火花作业。这项工作有20个任务在100个执行器中运行。每个执行程序都分配了5个核心。现在在聚合之后,它将数据写入HDFS。由于每个任务都在编写自己的数据,因此HDFS上会生成100个文件。此方法的另一个问题是,当多个线程同时在单个磁盘上写入时,会增加磁盘搜索操作。
避免此问题的解决方案之一是在写入数据之前对数据进行重新分区,但这将意味着数据的混乱,而这本身就是一项代价高昂的操作。
是否有办法在执行程序中合并RDD,以便执行程序中的所有任务合并其数据并写入单个输出文件?