Java 是独一无二的,对吗?那你对博士后的看法呢?我认为有三种选择。1) 为计算机添加更多内存。2) 将数据切块。3) 使用并行计算,多台计算机正在计算部分数据。是的,我的用户名是文本。我使(grp,usr)独一无二。Postgres版本是8.4.0。获取用户id

Java 是独一无二的,对吗?那你对博士后的看法呢?我认为有三种选择。1) 为计算机添加更多内存。2) 将数据切块。3) 使用并行计算,多台计算机正在计算部分数据。是的,我的用户名是文本。我使(grp,usr)独一无二。Postgres版本是8.4.0。获取用户id,java,sql,algorithm,postgresql,bigdata,Java,Sql,Algorithm,Postgresql,Bigdata,是独一无二的,对吗?那你对博士后的看法呢?我认为有三种选择。1) 为计算机添加更多内存。2) 将数据切块。3) 使用并行计算,多台计算机正在计算部分数据。是的,我的用户名是文本。我使(grp,usr)独一无二。Postgres版本是8.4.0。获取用户id需要与另一个表合并,这太耗时了。但我已经成功地将所有co-group对非唯一地写入一个文本文件。它是50GB。我目前正在使用Linux排序命令对其进行排序。我想,从这里开始,我可以编写一个程序,读取文本文件peuápeu,计算每个缺口组合出现的


是独一无二的,对吗?那你对博士后的看法呢?我认为有三种选择。1) 为计算机添加更多内存。2) 将数据切块。3) 使用并行计算,多台计算机正在计算部分数据。是的,我的用户名是文本。我使(grp,usr)独一无二。Postgres版本是8.4.0。获取用户id需要与另一个表合并,这太耗时了。但我已经成功地将所有co-group对非唯一地写入一个文本文件。它是50GB。我目前正在使用Linux排序命令对其进行排序。我想,从这里开始,我可以编写一个程序,读取文本文件peuápeu,计算每个缺口组合出现的次数,并将它们保存到另一个文件中,而不会在内存中存储太多。你看到这有什么明显的缺陷吗?顺便说一句,还不清楚结果是否应该按特定的顺序排序。大量的行会产生很大的不同…谢谢大家的精彩回答!经过几天的处理,我所做的糟糕的解决方案最终得到了我想要的结果。生成的文件有15亿行长,大约40GB。正如@ErwinBrandstetter所预测的,这是一个混乱的工作环境,我可能最终会制作一个更小的版本——下次使用善意提供的查询。(这是我的第一个问题——我必须说我对所有优秀的回答感到非常惊讶!谢谢!)+1提供了您的测试用例的结果。非常有用!(不适用于解决问题的拟定路线)。你在测试中使用了什么软件?我也是shell黑客的粉丝,但我不认为这个非常简洁的解决方案能在这么大的范围内起作用。我们正在查看一个可能包含数百万个文件的目录。每一个都将使用至少一个磁盘块(加上元数据!),并且您将对它们进行随机写入。如果使用原始数据集,它很可能会严重地破坏。要使第一阶段并行,需要使用锁。否则,同时打开和附加到同一文件的进程将相互覆盖。@ErwinBrandstetter-我用Java编写了一个测试套件。如果有兴趣,我可以发布。@jop-我们可以减轻文件系统过载。我们可以将文件放在子目录中,这不是问题。文件锁定也不应该是一个问题,因为写入应该是均匀分布的,并且锁争用应该相对较少。这可能不是一个“最佳”解决方案,但它将在任何地方工作,并将在与MapReduce解决方案类似的时间内终止(给定足够的并行化)。@jop-我的实验表明,与阶段2相比,阶段1相对较短-正如我所预期的那样。我们正在对阶段1中生成的任何文件执行O((n/2)^2)进程。这种方法的好处是,它将使用一致且可预测的运行时间,并且只有在磁盘已满时才会失败。这些基准测试应该谨慎对待,因为我们只知道所涉及的平均组大小和组合。在这些测试中,所有组都有~8名成员。因此,每个将只产生C(8,2)=28对。假设在完整的数据集中,有一个组,比如说,有1000个成员。仅这一组就可生产约500000对。一个拥有10000名成员的小组(30万人中),计算一下。。。。很可能真实的数据不是均匀分布的,而且有一个很大的群体潜伏在其中。@jop:都是真的。附加的测试用例实际上只是提供了一个数量级,与OldCurmudgeon发布的内容相比,仅此而已。
john 32
john 21
jim 21
jim 32
bob 32
john-jim 2 
john-bob 1
jim-bob 1
Group-21.txt
 jim
 john

Group-32.txt
 bob
 jim
 john
User-jim-john.txt
 11

User-bob-jim.txt
 1

User-bob-john.txt
 1
32 -> john, jim, bob
21 -> john, jim
john-jim -> 32, john-bob -> 32, jim-bob -> 32
john-jim -> 21