我想找出CSV阅读速度慢的原因。在
我尝试了多种方法,我有8GB的csv文件,处理后它是大约6GB的10列。在
我想的是,用一个线程读取文件,然后在另一个线程中处理它,所以我不使用任何bandwith。基本上和我在另一个堆栈溢出线程中找到的差不多。在
速度现在是1112秒左右,只读取文件!它相当于大约7MB/s。我可以通过SQL将这个驱动器的读取速度提高到380MB/s左右,所以肯定存在一些瓶颈或其他问题。在
我不担心加工或其他的事情。我只想尽快把文件读入内存,然后处理它。我的代码可能有一些问题,因为pandas的速度要快得多(尽管不是接近磁盘的速度),请看下面的内容。在
也许是这样,但我对此并不满意。在import os, csv, time, math
from queue import Queue
from threading import Thread
file = r'local_disk_file.csv'
out = r'network_location'
_sentinel = object()
def convert10(x10, y10):
# some processing
return gridcellid10
def read_file(file, q):
start = time.monotonic()
with open(file, 'r', newline='') as inFile:
next(inFile)
for row in inFile:
q.put(r