我目前正在研究大数据集(通常每个10 Gb),这使我无法使用R(RStudio)和处理数据帧.
为了处理有限的内存(和CPU功率),我尝试过Julia和Bash(Shell Script)来处理这些文件.
我的问题如下:我已经连接了我的文件(我有大约100万个单独的文件合并到一个大文件中)我想以这种方式处理这些大文件:假设我有类似的东西:
id,latitude,longitude,value
18,1,2,100
18,1,2,200
23,3,5,132
23,3,5,144
23,3,5,150
Run Code Online (Sandbox Code Playgroud)
我想处理我的文件说,对于id = 18,计算max(200),min(100)或其他一些propreties然后转到下一个id并执行相同的操作.我想bash中的某种嵌套循环会起作用,但是我在优雅的方式上遇到了问题,到目前为止在互联网上找到的答案并没有真正起作用.我不能在朱莉娅处理它,因为它太大/太重,这就是为什么我主要在bash中寻找答案.
但是,我想这样做是因为我认为处理一个巨大的文件而不是打开文件,计算,关闭文件并一次又一次地转到下一个文件会更快.我完全不确定!
最后,哪一个会更好用?朱莉娅还是巴什?或者是其他东西?
谢谢 !
朱莉娅还是巴什?
如果你在谈论使用普通的bash而不是一些可以在任何其他shell中执行的命令,那么答案显然是Julia.普通的狂欢比朱莉亚慢.
但是,我建议使用现有工具而不是编写自己的工具.
GNU datamash可能就是您所需要的.你可以从bash或任何其他shell调用它.
对于id = 18,计算max(200),min(100)[...]然后转到下一个id并执行相同的操作
使用datamash,您可以使用以下bash命令
< input.csv datamash -Ht, -g 1 min 4 max 4
Run Code Online (Sandbox Code Playgroud)
哪个会打印
GroupBy(id),min(value),max(value)
18,100,200
23,132,150
Run Code Online (Sandbox Code Playgroud)