KeyValueTextInputFormat

KeyValueTextInputFormat

有人可以给我一个实际的场景,其中我们必须使用KeyValueTextInputFormatTextInputFormat吗?

最佳答案

TextInputFormat类将源文件的每一行转换为键/值类型,其中BytesWritable键代表记录的偏移量,而Text值代表整个记录本身。
KeyValueTextInputFormat是TextInputFormat的扩展版本,当我们必须将每个源记录作为文本/文本对获取时,此记录很有用,在该记录中,通过使用固定的定界符分割记录来从记录中填充键/值。

考虑以下文件内容,

AL#Alabama
AR#Arkansas
FL#Florida

如果配置了TextInputFormat,您可能会看到以下键/值对,
0    AL#Alabama
14   AR#Arkansas
23   FL#Florida

如果KeyvalueTextInputFormat配置了conf.set("mapreduce.input.keyvaluelinerecordreader.key.value.separator", "#"),则结果可能如下所示:
AL    Alabama
AR    Arkansas
FL    Florida

关于hadoop - hadoop中的KeyValueTextInputFormat和TextInputFormat之间的主要区别是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29903987/

10-11 07:25