我不太理解hadoop中nullwriteable的概念。它的用途是什么?为什么outputkeyclass用于 RCFile 格式a NullWritable.class 和outputvalueclass a BytesRefArrayWritable.class ?
RCFile
NullWritable.class
BytesRefArrayWritable.class
jqjz2hbq1#
这是因为没有RCF文件的密钥。当您从纯文本文件(如csv)读取时,密钥通常是文件中的一个字节偏移量。由于rcfiles有一个列存储格式,所以实际上没有一个键可以用来标识行,因为行在不同的列集中是分段的。 NullWritable 本质上意味着 ignore this value .
NullWritable
ignore this value
wdebmtf22#
“mapreduce的map和reduce函数都是针对(键、值)成对结构的数据定义的”(wikipedia)。这意味着您的数据必须以(键、值)对的形式进行结构化。但有时不需要使用钥匙,也不能将其设置为 Null 因为钥匙必须实现 WritableComparable . 这就是hadoop创建 NullWritable 班级。
Null
WritableComparable
2条答案
按热度按时间jqjz2hbq1#
这是因为没有RCF文件的密钥。当您从纯文本文件(如csv)读取时,密钥通常是文件中的一个字节偏移量。由于rcfiles有一个列存储格式,所以实际上没有一个键可以用来标识行,因为行在不同的列集中是分段的。
NullWritable
本质上意味着ignore this value
.wdebmtf22#
“mapreduce的map和reduce函数都是针对(键、值)成对结构的数据定义的”(wikipedia)。
这意味着您的数据必须以(键、值)对的形式进行结构化。但有时不需要使用钥匙,也不能将其设置为
Null
因为钥匙必须实现WritableComparable
. 这就是hadoop创建NullWritable
班级。