gpt4 book ai didi

hadoop - 如何使用MR代码处理hadoop中的单个文件

转载 作者:可可西里 更新时间:2023-11-01 16:31:20 26 4
gpt4 key购买 nike

我有一个文件,其中包含 meterid、hour、watts ... 和其他一些字段。我为每个 meterid 制作了复合键 meterid 和 hour 以及每小时的瓦特总和。 MR 代码适用于单个文件。

我有多个文件,文件名是日期之类的

14-05-2015.txt, 15-05-2015.txt etc.

我执行相同的代码并添加与 meterid 和小时对应的所有瓦特。但我希望瓦特将为与电表 ID 和小时相对应的每个文件求和,而不是为所有文件求和。

最佳答案

要轻松解决此问题,您可以在编写的组合键中也包含文件名。这将帮助您在缩减阶段之前对为每个文件单独生成的 key 进行分组。

所以首先你必须从你的 Mapper 类的 setup() 方法中找到文件名,你可以在你的 mapper setup() 方法中使用下面的代码片段,

String fileName = ((FileSplit) context.getInputSplit()).getPath().toString();

将此文件名也添加到您的复合键中,并使用相应的相等性检查实现,并且键将根据文件名进行分组,这将解决您的问题。希望这会有所帮助。

关于hadoop - 如何使用MR代码处理hadoop中的单个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30253673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com