0
我有一个包含4 * 10^8(粗略)记录的表,我想要得到一个4 * 10^6(完全)的样本。Map-Reduce实现中的特殊示例方法
但我的方式获得样品有些特殊:
- 我选择随机的4 * 10^8条记录1(每条记录都有相同的概率要选择)。
- 重复步骤1 4 * 10^6次(不管多次选择一条记录)。
我想起来解决此一方法:
- 生成表
A(num int)
,并有在表A
的每个记录只有一个号码是随机整数从1到n(n为大小我原来的桌子,大约4 * 10^8如上所述)。 - 加载表
A
作为每个地图的资源文件,如果现在决定的记录的序号现在在表A
中,则输出该记录,否则将其丢弃。
我觉得我的方法是不那么好,因为如果我想从原来的表样更多的记录,表A
会变得非常大,无法加载资源文件。
那么,有没有人可以给一个优雅的算法?