gpt4 book ai didi

java - setMapoutputkeyclass和setMapoutputvalueclass方法

转载 作者:行者123 更新时间:2023-12-02 20:45:15 24 4
gpt4 key购买 nike

如果reducer的输出与mapper的输出不同怎么办?每个文档都说会抛出错误。但是我的问题是为什么?

Reducer的输出是终结点,所以为什么重要,如果它与mapper的输出不同,则需要使用setMapoutputkeyclass和setMapoutputvalueclass方法设置它。如果它不匹配并且除了错误以外没有通过方法设置,将会发生什么?

当使用这两种方法设置输出类型时,需要注意什么?

任何人都可以分享这个概念吗?我找了很久

编辑....!

我们在mapper reducer类中设置了通用参数,以避免运行时异常。但是当我们开始运行时,它变成了对象类型(Java erausre)。

因此,这意味着当Mapper的输出存储到context.write(new Text(Year),new IntWritable(airTemp))中时,在运行时将其字节数据存储到对象类型中。当reducer类调用时,它从映射器中获取原始字节,并仅以原始字节生成输出。默认情况下,Mapper和Reducer输出类型相同,但是如果不同,则使用上述方法进行设置。并使用这些方法,Hadoop框架将这些原始字节转换为特定类型,然后写入输出文件。

有道理吗...?

最佳答案

reducer 的输出可能与映射器的输出不同。

重要的是reducer 输入类型与映射器输出类型匹配。

例如,wordcount的映射器输入类型为(Long, Text),输出类型为(Text, Int),使得化简器输入也为(Text, Int),但最终的化简器输出可以轻松地为(Text, Double)(Null, Float)
这些是工作的输出

  • setOutputKeyClass()
  • setOutputValueClass()
  • setOutputFormatClass()-需要是一个公开输出键和值
  • 的类型

    您提到的方法专门用于“映射任务”。

    缺省值为 TextInputFormatTextOutputFormat,它们映射到映射器输入的 <LongWritable, Text>和已配置的 <K, V> reducer输出。

    关于java - setMapoutputkeyclass和setMapoutputvalueclass方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48369670/

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