从海量文件中检索用户关系数据,尝试级联删除规则

时间:2014-01-05 04:00:48

标签: java mysql r

我从社交网络抓取了数百万的用户关系数据。此类数据以以下格式存储:

  1. A B
  2. A C
  3. A E
  4. B F
  5. B A
  6. B D
  7. C F
  8. D O
  9. D P
  10. E X
  11. E M ...
  12. 但是,我不需要所有这些数据。我只关心一些特殊用户(经过验证的用户),例如A,B和C.

    我的问题是如何才能从这些大量数据中检索已验证用户的用户关系数据。我正在编写一个程序,但我发现它需要很长时间才能完成,因为数据的大小(大约8GB)。如果我将这些数据存储到SQL数据库并使用一些级联删除规则,它会更快吗?你们有什么建议吗?非常感谢。

    顺便说一句,用户关系数据存储在180个文本文件中。每个文件包含上述形式的100万个关系。

1 个答案:

答案 0 :(得分:2)

如果您的数据已经卡在文本文件中,并且您只需要在我使用awk时将其删除,那么它就像您可以获得的那样轻量级。类似的东西:

awk '{ if( FNR != NR ) { if( $1 in users || $2 in users) { print } } else { users[$0] = $0} }' list_of_users relations.txt

其中list_of_users是您想要的用户列表,每行一个。我们将它们存储在一个数组中,然后遍历关系并打印包含这些用户的关系。