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

标签 java mysql r

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

  1. A B
  2. A C
  3. AE
  4. BF
  5. B A
  6. BD
  7. CF
  8. 你好
  9. DP
  10. E X
  11. 嗯 ...

但是,我不需要所有这些数据。我只关心一些特殊用户(验证用户),比如A、B和C。

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

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

最佳答案

如果您的数据已经卡在文本文件中,并且您只需要在我使用 awk 时将其删除,那么对于这类事情,它是您所能获得的最轻量级的。像这样的东西:

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

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

关于java - 从海量文件中检索用户关系数据,尝试级联删除规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20929905/

相关文章:

MySQL查询返回包含空格的行

R基础图形圆形直方图

r - 两列facet_grid,顶部带有条形标签

r - Mutate_at ,通过指定列名添加列

java - 如何编辑文件中的特定属性?

java - 如何使 JTextField 接受以逗号作为分隔符的 double 值?

MYSQL 触发器递归规避

python - 无法使用 Django ORM 关闭脚本中的自动提交

java - LazyReference 具有双重检查锁定和 null 处理

java - 如何在 gae java 的电子邮件 API 授权发件人列表中添加电子邮件 ID