我不太明白 Hadoop 中 NullWritable 的概念。它的用途是什么,为什么 outputKeyClass 是RCFile
格式 aNullWritable.class
和 outputValueClass a BytesRefArrayWritable.class
?
问问题
193 次
2 回答
2
这是因为 RCFiles 没有密钥。当您从 CSV 等纯文本文件中读取数据时,密钥通常是文件中的字节偏移量。由于 RCFile 具有列式存储格式,因此实际上没有可用于标识行的键,因为行在不同的列集中被分段。 NullWritable
本质上意味着ignore this value
.
于 2014-04-30T22:06:09.623 回答
1
“MapReduce 的 Map 和 Reduce 函数都是针对(键、值)对中结构化的数据定义的”(维基百科)。
这意味着您的数据必须以(键、值)对的形式进行结构化。但有时不需要使用密钥,并且您无法将其设置为,Null
因为密钥必须实现WritableComparable
。这就是Hadoop创建一个NullWritable
类的原因。
于 2014-05-01T15:58:43.477 回答