在HDFS中写入文件 - 使用TextIO API vs Java - BufferedWriter(new FileW



我们有一个要求,我们需要为每个员工ID创建文件。我们使用了 groupbyKey 功能,并能够创建数据结构。<ID、可迭代><员工对象>>,我们将可迭代<员工>转换为列表。然后,我们为员工 ID 创建了一个文件夹和一个文件。因此,在<EmployeeID,List>>对象中,对于我们循环的每一行并使用 BufferedWriter 将数据写入文件。它是否足够好,或者我们需要使用 TextIO 框架来做同样的事情。问题是,与 BufferedWriter 在文件中每一行写入数据相比,使用 TextIO 是否会获得显着的性能改进。

谢谢

以产生明确定义的结果并且在发生故障时不会丢失或重复数据的方式编写文件是非常困难的。您可以通过查看WriteFiles转换的实现来了解这种复杂性,TextIO幕下使用。因此,TextIO为您处理这种复杂性,如果可以的话,我强烈建议使用它 - 而不是使用手工制作的代码。您可能想要write().to(DynamicDestinations)版本。

如果你正在做一些TextIO绝对做不到的事情,我仍然建议查看WriteFiles的实现,以了解还需要做什么来确保你的代码对故障具有弹性。

最新更新