查询第一列R中的内存60gb tsv,哪个数据库/方法?

问题描述 投票:1回答:1

我有6个60gb(未压缩)的大型tsv矩阵,包含2000万行x501列:第一个索引/整数列基本上是行号(所以甚至不需要),500列是数字(浮点数,4位小数,例如1.0301)。所有tsv具有相同的行数,彼此对应。

我需要在行号上提取行。

我需要提取多达5,000个连续行或最多500个非连续行;所以不是数百万。希望,也有一些压缩,以减少60GB的大小,所以可能没有SQL?最好的方法是什么?

  • 我尝试过的一种方法是将它们分成100个gzip文件,使用tabix对它们进行索引,然后查询它们,但这对我的需求来说太慢了(500个随机行需要90秒)。
  • 我读到了关于ff包的内容,但还没有找到如何通过第一列索引?
  • 还有其他方法吗?

非常感谢。

r database dataframe bigdata ff
1个回答
0
投票

我将使用来自fread()包的data.table

使用参数skipnrows你可以使用起始行来读取(skip)或要读取的行数(nrows

如果你想探索tidyverse方法,我推荐你这个解决方案R: Read in random rows from file using fread or equivalent?

© www.soinside.com 2019 - 2024. All rights reserved.