我正在使用一个价值很大的程序。每个值由id号(由逗号分隔的整数)组成:
value1:1,207,688,4401,5432,40000,872111100
value2:65,876,992,10002,9843221
我将值存储为文本,但每个字符获得1个字节。如果id中的位数变大,则会占用大量空间。我将值存储为文本类型? 哪种格式最适合存储? 感谢。
答案 0 :(得分:0)
如果内存效率是一个真正令人担忧的问题,并且您知道这些ID的长度永远不会超过Long.MAX_VALUE
,那么我建议使用LongWritable
。
相反,如果你知道它们往往足够长,每个字符的字节数值将比以数字形式存储的内存效率更高,那么Text
非常适合。
在大多数情况下,考虑到它无论如何都会被写入文件并不值得担心 - 如果进行某种形式的计算,通常只需要转换为long
使用它,否则你可能会坚持Text
以避免在初始解析之上的转换开销。