【发布时间】:2018-02-14 17:06:42
【问题描述】:
如何根据键对包含大约 6 GB 大小的大约 1000 万条记录(JSON 记录)的非常大的文件进行排序。
解决方案应该是内存优化的。我的意思是,有一些方法可以将数据放入 Collection 并排序,但这会消耗大量堆大小,从而导致时间障碍。
请建议一些通用的内存优化排序技术,其中我们可以传递一个 JSON 文件和一些键值和排序类型,它会返回一个排序文件。
例如
文件输入.json
{
"name":"rohit", "age":20, ....
}
{
"name":"sourav", age":32, ....
}
.
.
.
//some 10 million records
所以,假设 key 是 age,它和 type 是 desc,它应该返回一个按年龄排序的 desc 文件。
【问题讨论】:
-
听起来需要数据库... ;)
-
到目前为止您尝试过什么?也许先尝试自己弄清楚,然后在遇到问题时再回来:)
-
你可能很幸运能够将洞文件的解析数据保存在 RAM 中(4GB(最高 8GB)应该足够了)。
-
查看 hadoop map reduce,它可能会有所帮助.. 有一些示例或查看此链接hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html
标签: java algorithm file optimization generic-programming