我对大数据这个话题完全陌生。我必须分析一个近 10 GB 的带有数字的文本文档。这些是近 10 亿个数字,所以对我来说,像这个文件这样分析并不是那么容易。文档的结构像一个列表,一行一个数字。我的主要问题是,您认为分析这些庞大数据集的最佳机会是什么?我的目的是找出列表包含多少个不同的数字,我想保存这个结果。
输入是这样的,有近十亿行:
123801
435345
123
7
43958112
4569
45
509858172
...
输出应该是这样的(仅作为示例):
1 2
2 4
3 1
4 109
5 56
...
高达近十亿
首先,我使用 linux/unix 'sort' 和 'unique' 以及特定参数进行了尝试,但对于这样的情况,这不是一个解决方案。
我的下一个想法是尝试在数据集上实现快速排序或合并排序。是否可以在 Java 或其他语言中进行这样的分析/加载?我读到 ArrayList 在 Java 列表中开销最小。如果可能的话,我想我可以尝试实现一个 for 循环,该循环将递增到数字“n”,并且如果 nextElement != thisElement 退出 for 循环。我想我可以通过增加一个变量来保存计数,如果条件正确则设置为零。您如何看待这个想法,当然还有这个问题?
我也想过为这个数据集建立一个数据库。这是更好的机会吗?如果是,哪个 DBMS 是最好的?
我对其他任何事情都非常开放,我将非常感谢您的意见、想法和解决方案!