Python Chunking CSV File Multiproccessing

Estoy usando el siguiente código para dividir un archivo CSV en varios fragmentos (procedentes deaquí)

def worker(chunk):
    print len(chunk)

def keyfunc(row):
    return row[0]

def main():
    pool = mp.Pool()
    largefile = 'Counseling.csv'
    num_chunks = 10
    start_time = time.time()
    results = []
    with open(largefile) as f:
        reader = csv.reader(f)
        reader.next()
        chunks = itertools.groupby(reader, keyfunc)
        while True:
            # make a list of num_chunks chunks
            groups = [list(chunk) for key, chunk in
                      itertools.islice(chunks, num_chunks)]
            if groups:
                result = pool.map(worker, groups)
                results.extend(result)
            else:
                break
    pool.close()
    pool.join()

Sin embargo, parece que la cantidad de fragmentos siempre permanece constante, independientemente de la cantidad de fragmentos que elijo usar. Por ejemplo, si elijo tener 1 o 10 fragmentos, siempre obtengo esta salida al procesar un archivo de muestra. Idealmente, me gustaría dividir un archivo para que se distribuya equitativamente.

Tenga en cuenta que el archivo real que estoy fragmentando tiene más de 13 millones de filas, por lo que lo estoy procesando pieza por pieza. Eso es un deber!

6
7
1
...
1
1
94
--- 0.101687192917 seconds ---

Respuestas a la pregunta(2)

Su respuesta a la pregunta