gpt4 book ai didi

java - 在 Hadoop 作业中输出键类或值类是强制性的还是可选的?

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

在 Java 中的单类 MapReduce 作业中,我是否必须设置输出键类或值类,或者它是可选的,如果未设置则有某种默认值适用?例如,如果我在我的工作中注释掉以下内容,它似乎运行良好,但我只是想确认我没有遗漏任何东西。

有问题的行要注释掉...

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

示例数据文件,我用逗号分隔并首先拉入最后一列...

600000US00601,00601,"00601 5-Digit ZCTA; 006 3-Digit ZCTA",11102
8600000US00602,00602,"00602 5-Digit ZCTA; 006 3-Digit ZCTA",12869
8600000US00603,00603,"00603 5-Digit ZCTA; 006 3-Digit ZCTA",12423
8600000US00604,00604,"00604 5-Digit ZCTA; 006 3-Digit ZCTA",33548

最佳答案

来自 Hadoop 权威指南 [Ed 3rd/ch 7.3]:

Text Output
The default output format, TextOutputFormat, writes records as lines of text. Its keys
and values may be of any type, since TextOutputFormat turns them to strings by calling
toString() on them. Each key-value pair is separated by a tab character, although that
may be changed using the mapred.textoutputformat.separator property.

它指出 TextOutputFormat 在输出时对键和值调用 toString() ,因此可以接受任何类型。因此,我认为在不指定您提到的行的情况下运行简单的 MR 作业不会产生任何问题。

但是,当您明确指定另一种输出格式时,肯定会产生问题,例如 SimpleDBOutpFormat

关于java - 在 Hadoop 作业中输出键类或值类是强制性的还是可选的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26037871/

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