如何解决在大型CSV文件中查找#ROWS
目的是查找大型CSV文件中的总行数。我现在正在使用Python Dask进行查找,但是由于文件大小约为45G,因此需要花费一些时间。带有cat
的Unix wc -l
似乎表现更好。
所以问题是-dask / pandas read_csv是否有任何调整,以使其更快地找到总行数?
解决方法
您可以在python代码中尝试subprocess
:
fileName = "file.csv"
cmd = 'wc -l {0}'.format(fileName)
output = subprocess.call(cmd)
,
Dask数据框将花费其90%的时间将文本解析为各种数值类型,例如int,float等。您不需要任何此类内容,因此最好不要制作类似数据框的东西。
您可以使用dask.bag,它将更快/更简单
dask.bag.read_text("...").count().compute()
但是实际上wc -l
的速度将与其他任何东西一样快。您应该完全受磁盘速度的约束,而不是受计算能力的约束。 Dask帮助您利用CPU上的多个内核,但是在这种情况下,这些并不是瓶颈,因此wc
不是正确的工具。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。