2

有一个hive内部表,存储为序列文件,第一列类型是字符串,字段分隔符是'\1',我想直接用Mapreduce处理,发现输入键是BytesWritable。我的问题是配置单元如何在序列文件中存储数据?我得到 bytesWritable 键的原因是第一列类型是字符串吗?我没有将map的键分隔符配置为'\1',所以我对第二个问题感到困惑

4

1 回答 1

2

Hive 不会将第一列视为 SequenceFile 的键。相反,密钥被完全忽略。[1] [2]。因此,当您编写 Mapper 以对 Hive SequenceFile 进行操作时,您还应该忽略 Key。您的所有列都将成为价值的一部分。

以防万一您的 Value 也是 aBytesWritable并且您希望它是Text,请尝试SequenceFileAsTextInputFormt文档)。这个类似问题的答案可能会帮助您进行设置。您应该能够StringText简单的toString(). 你的分隔符'\1'会出现在这里。拆分您的Stringon'\1'以将其从 Hive 中分离到您的列中。

于 2013-05-23T17:03:47.660 回答