gpt4 book ai didi

java - 如何为 SequenceFileInputFormat 定义映射函数的键和值输入?

转载 作者:可可西里 更新时间:2023-11-01 15:17:53 26 4
gpt4 key购买 nike

我正在尝试理解一个示例 hadoop 项目。它有以下代码块

jconf.setOutputKeyClass(Text.class);
jconf.setOutputValueClass(Text.class);
jconf.setInputFormat(SequenceFileInputFormat.class);

来自 this link ,我读到对于 SequenceFileInputFormat,键和值是用户定义的。我需要为此实现 RecordReader 吗?我没有看到它在项目中实现。是否有任何默认分隔符用于将输入拆分为键值对?

最佳答案

您不必实现 RecordReader 来读取序列文件。

但是,生成序列文件并不像生成文本文件那么简单。所有命令如

hadoop fs -put

默认在 HDFS 中生成文本文件。

如果您想测试一个需要序列文件作为输入的 MR 程序,您首先需要将您的文本文件转换为序列文件并将其作为输入。

要从文本文件创建序列文件,您可以编写一个带有标识映射器且没有缩减器的简单 MR。您需要将输入文件格式设置为文本并将文本文件作为输入传递;将输出格式设置为序列文件在此作业中。此作业的输出将是序列文件格式的文本文件的副本。请确保选择此作业的输出键和值,请记住,任何使用序列文件的后续 MR 作业都必须接受它们作为其输入键和值。换句话说,序列文件中的键和值在其创建时就已确定。

任何需要序列文件的后续 MR 作业(如您在问题中引用的作业)可以使用上面的序列文件,映射器输入中的“键”和“值”类型将与您之前发出的相同。

关于java - 如何为 SequenceFileInputFormat 定义映射函数的键和值输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15288924/

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