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

时间:2013-04-13 19:17:04

标签: hadoop mapreduce

我正在使用一个价值很大的程序。每个值由id号(由逗号分隔的整数)组成:

value1:1,207,688,4401,5432,40000,872111100

value2:65,876,992,10002,9843221

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

1 个答案:

答案 0 :(得分:0)

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

相反,如果你知道它们往往足够长,每个字符的字节数值将比以数字形式存储的内存效率更高,那么Text非常适合。

在大多数情况下,考虑到它无论如何都会被写入文件并不值得担心 - 如果进行某种形式的计算,通常只需要转换为long使用它,否则你可能会坚持Text以避免在初始解析之上的转换开销。