你如何处理 reducer 中的不同值类型
How do you handle different value types in reducer
我正在编写一个具有 2 个映射器和 1 个缩减器的 mapreduce 程序,我为每个映射器实现了自定义可写数据类型。数据类型或多或少只是一个容器,其中的字段是文本/可写值。
所以 Mapper 1 输出 id(Text), M1Writable (my writable with 3 fields)
映射器 2 输出 id(文本),M2Writable(我的可写有 2 个字段)
reducer 会得到一个可迭代的值
由于两种可写类型不同,这将如何工作?
如何确定它来自哪个映射器?
谢谢
我知道这是一个基本问题,但我在寻找答案时遇到了问题。
MapReduce 中的映射器总是输出相同的类型。
除非 M1Writable 和 M2Writable 具有共同的父级 class(例如 MWritable),这是所有映射器的通用输出类型,否则您不能在映射器之间输出不同的类型。
要知道输出来自哪个映射器,您需要在自定义 MWritable 对象中记录信息。
我正在编写一个具有 2 个映射器和 1 个缩减器的 mapreduce 程序,我为每个映射器实现了自定义可写数据类型。数据类型或多或少只是一个容器,其中的字段是文本/可写值。
所以 Mapper 1 输出 id(Text), M1Writable (my writable with 3 fields)
映射器 2 输出 id(文本),M2Writable(我的可写有 2 个字段)
reducer 会得到一个可迭代的值
由于两种可写类型不同,这将如何工作?
如何确定它来自哪个映射器?
谢谢 我知道这是一个基本问题,但我在寻找答案时遇到了问题。
MapReduce 中的映射器总是输出相同的类型。
除非 M1Writable 和 M2Writable 具有共同的父级 class(例如 MWritable),这是所有映射器的通用输出类型,否则您不能在映射器之间输出不同的类型。
要知道输出来自哪个映射器,您需要在自定义 MWritable 对象中记录信息。