gpt4 book ai didi

hadoop - 如何在 context.write(k,v) 中输出值

转载 作者:可可西里 更新时间:2023-11-01 14:44:57 27 4
gpt4 key购买 nike

在我的 mapreduce 工作中,我只想输出一些行。

但是如果我这样编码: context.write(data, null);

程序将抛出 java.lang.NullPointerException。

我不想像下面这样编码: context.write(data, new Text(""));

因为我必须修剪输出文件中每一行的空格。

有什么好的方法可以解决吗?提前致谢。


对不起,是我的错。我仔细检查了程序,发现原因是我将Reducer设置为combiner。

如果我不使用组合器,声明 context.write(数据,空);在 reducer 中工作正常。在输出数据文件中,只有数据线。


分享来自 hadoop 权威指南的 NullWritable 解释:

NullWritable 是一种特殊类型的 Writable,因为它具有零长度序列化。无字节被写入流或从流中读取。它用作占位符;例如,在MapReduce,一个key或者一个value可以在不需要的时候声明为NullWritable使用那个位置——它有效地存储了一个常量空值。 NullWritable 也可以当您想存储值列表时,可用作 SequenceFile 中的键,而不是到键值对。它是一个不可变的单例:可以通过调用来检索实例NullWritable.get().

最佳答案

你应该使用 NullWritable为此目的。

关于hadoop - 如何在 context.write(k,v) 中输出值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15899705/

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