用于RCFIle格式文件的Hadoop NullWritable

时间:2014-04-30 18:19:46

标签: hadoop hive writable

我无法理解Hadoop中NullWritable的概念。它用于什么以及为什么RCFile格式的outputKeyClass为NullWritable.class而outputValueClass为BytesRefArrayWritable.class

2 个答案:

答案 0 :(得分:2)

这是因为RCFiles没有密钥。从纯文本文件(如CSV)读取时,该键通常是文件中的字节偏移量。由于RCFiles具有柱状存储格式,因此在不同列集中对行进行分段时,实际上并不存在可用于标识行的键。 NullWritable基本上意味着ignore this value

答案 1 :(得分:1)

" MapReduce的Map和Reduce函数都是针对(key,value)对中构造的数据定义的 " (wikipedia)。

这意味着您的数据必须以(键,值)对结构化。但有时不需要使用密钥,也不能将其设置为Null,因为密钥必须实现WritableComparable。这就是Hadoop创建NullWritable课程的原因。