gpt4 book ai didi

hadoop - 使用不同的参数两次读取文件

转载 作者:行者123 更新时间:2023-12-02 21:18:23 26 4
gpt4 key购买 nike

我知道,如果您使用相同的路径两次键入addinputpath函数,则可以生成同一文件的两个映射器,但是我希望每次处理文件时都略有不同。

具体来说,我希望每次都使用通过Job类(带有configuration.set / get)传递的不同参数。当文件不同时,我可以通过使用context / inputsplit类获得文件的路径/名称,但是由于它们相同,所以我无法区分它们。有什么想法吗?

每个映射器都是一个不同的maptask,但是我不知道是否可以使用有关maptask的任何信息。我也不知道框架将输入拆分与maptasks匹配的顺序-这可能很有用。

或者,我可以复制文件(使用其他名称),但这会浪费资源

最佳答案

我建议您将这种逻辑放入Mapper中。这将比让Hadoop扫描和处理相同文件两次的效率更高。

因此伪代码将是这样的:

map(key, value, context) {

//do something with this key/value
...
//emit output 1
context.write(...)

//do something else with this the same key/value
...
//emit output 2
context.write(...)
}

如果需要将输出1和2分发到不同的reducer,则需要制作输出键。

关于hadoop - 使用不同的参数两次读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38126898/

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