hive如何存储序列文件?

时间:2013-05-23 09:30:24

标签: hadoop hive

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

1 个答案:

答案 0 :(得分:2)

Hive不会将第一列视为SequenceFile的键。相反,密钥完全被忽略。 [1] [2]。因此,当您编写Mapper以在Hive SequenceFile上运行时,您也应该忽略Key。您的所有列都将成为Value的一部分。

如果您的值也是BytesWritable,并且您希望它为Text,请尝试SequenceFileAsTextInputFormtdocs)。 this similar question问题的答案可能会帮助您进行设置。您应该可以使用简单StringText获得toString()。你的分离器'\1'将进入这里。将您的String拆分为'\1',将其与Hive中的列分开。