当前位置: 首页 > 知识库问答 >
问题:

Mapper中的不同键

孙志
2023-03-14

在Map-Reduce中,是否可以在Mapper、合并器和Reduce er之间传播不同类型的键。

例如,如果我有一个映射器(在Java中实现),它输出文本,可作为键/值对写入。然后,在组合器中,我将所有输出合并为单个键,并希望输出为可空写的文本。然后在Reducer中,我想输出文本,可写。

有可能做上面这样的事情吗?若否,原因为何?

共有3个答案

巫马英豪
2023-03-14

Hadoop确实使用组合器优化处理,但不能保证组合器的执行。因此,您不能假设,Hadoop可以将映射输出数据直接发送到Reducer阶段。

要讨论这个问题,我建议阅读本书的第3章。在PDF文件的第48页中对该问题的评论。

羊舌兴德
2023-03-14

您可以使用文本而不是IntWritable:

  • 映射器输出:文本,文本
  • 组合器:文本,文本。作为合路器输出键,可以使用空写键。
  • 减速器输入:文本,文本
江文斌
2023-03-14

可以使用以下方法为mapper和reducer指定不同的键/值类型:

job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(IntWritable.class);

job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);

但是,您无法为组合器设置与映射器不同的键/值类型。这是因为合并器仅用于减少从映射器发送到化简器的数据量。您应该能够去除合并器而没有任何副作用。但是,如果组合器生成 Null 可写、文本对和映射器生成文本、不可写对,则如果没有组合器,程序将失败。

 类似资料:
  • 启动spring 找不到对应的mapper的bean,用mapperscan注解扫描mapper或者mapper接口加上@mapper可以解决,如果不使用注解就找不到bean报错,在yml配置文件中已经配置了扫描mapper.xml文件,路径也没有问题,不会自动扫描到mapper吗?有没有大佬解答一下 下面是配置和目录结构的截图 对应mapper 对应xml

  • 通用 Mapper4 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及Example 相关的单表操作。通用 Mapper 是为了解决 MyBatis 使用中 90% 的基本操作,使用它可以很方便的进行开发,可以节省开发人员大量的时间。 通用Mapper都可以极大的方便开发人员。可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法。 极其方便的使

  • Mapper 是一个简单的 Swift 库,用于转换 JSON 为强类型对象。和其它库相比,Mapper 的一个优点是你可以有不可改变的特性。 代码: import Mapper// Conform to the Mappable protocolstruct User: Mappable {  let id: String  let photoURL: NSURL?  // Implement 

  • 1. 前言 本小节,我们将一起学习 MyBatis mapper。 在上一节中我们以 JDBC 的方式使用了 MyBatis,但在实际应用中是不会选择这种方式来执行 SQL 的,MyBatis提供了 mapper 这种优雅且易维护的方式来帮助我们更好地去使用 SQL。 2. 定义 慕课解释:mapper 是 Java 方法和 SQL 语句之间的桥梁。 Java 接口方法与 SQL 语句以及 map

  • 项目简介 用excel导入、导出数据是企业软件里很常见的需求,但是要实现好导入、导出并非易事,主要原因在于excel导入或导出并非简单的对数据库表的操作,往往牵涉到校验、转换等工作。 本项目希望提供一套方便好用的库,能够使得此类需求实现起来更为便捷。 spreadsheet-mapper-core 本包提供了excel文件导入、导出的基础工具。 和导入相关的工具: package f2w:读取ex

  • OLAP mapper 是一个 Java 写的 OLAP 引擎,你可以通过它跟大量存储在 SQL 数据库中的数据集进行查询和交互,而无需使用 SQL 语句。OLAP mapper 是基于星型数据仓库模型进行构建的。