有一个hive内部表,存储为sequence文件,第一列类型是string,字段分隔符是'\1',我想直接用Mapreduce处理,发现输入键是BytesWritable。我的问题是hive如何在sequencefile中存储数据?我获取bytesWritable键的原因是不是因为第一列类型是string?我没有将map的键分隔符配置为'\1',因此我对第二个问题感到困惑
发布于 2013-05-24 01:03:48
配置单元不会将第一列视为SequenceFile的键。相反,关键字被完全忽略了。[1] [2].因此,当您编写映射器以在配置单元SequenceFile上操作时,您也应该忽略键。您的所有列都将成为值的一部分。
如果您的值也是一个BytesWritable,并且您希望它是Text,那么可以尝试SequenceFileAsTextInputFormt (docs)。this similar question问题的答案可能会帮助您进行设置。您应该能够通过一个简单的toString()从Text获得一个String。你的分离器'\1'会到这里来。在'\1'上拆分你的String,将它从配置单元分离到你的列中。
https://stackoverflow.com/questions/16710282
复制相似问题