如何在hadoop的map函数中选择合适的值类型



我正在处理一个程序,它的值很大。每个值由id号组成(以逗号分隔的整数):

value1: 1207688, 4401, 5432, 40000, 872111100

value2: 65876992、10002、9843221

我将值存储为文本,但每个字符获得1个字节。如果id中的位数变大,则会占用大量空间。我是否将值存储为文本类型?哪种格式最适合存储?谢谢。

如果内存效率是一个真正的问题,并且您知道这些id的长度永远不会超过Long.MAX_VALUE,那么我建议使用LongWritable

相反,如果您知道它们将趋向于足够长,以字节为单位的值将比以数字形式存储的值更具内存效率,那么Text是非常合适的。

在大多数情况下,考虑到它无论如何都会被写入文件,不值得担心太多—通常只有在使用它执行某种形式的计算时才值得转换为long,否则您不妨坚持使用Text以避免在初始解析之上的转换开销。

相关内容

  • 没有找到相关文章

最新更新