Solución:
La documentación actual de Panda dice:
compresión: {‘inferir’, ‘gzip’, ‘bz2’, ‘zip’, ‘xz’, None}, predeterminado ‘infer’
Dado que ‘inferir’ es el valor predeterminado, eso explicaría por qué funciona con pandas.
La documentación de Dask sobre el compresión argumento:
Cadena como ‘gzip’ o ‘xz’. Debe admitir un acceso aleatorio eficiente. Los nombres de archivo con extensiones correspondientes a algoritmos de compresión conocidos (gz, bz2) se comprimirán automáticamente en consecuencia.
Eso sugeriría que también debería inferir la compresión durante al menos gz. Que no lo haga (y todavía no lo hace en 0.15.3) puede ser un error. Sin embargo, funciona con la compresión = ‘gzip’.
es decir:
import dask.dataframe as dd
df = dd.read_csv("Data.gz", compression='gzip')
En realidad, es una limitación de dask de larga data. Cargue los archivos con dask.delayed
en lugar de:
import pandas as pd
import dask.dataframe as dd
from dask.delayed import delayed
filenames = ...
dfs = [delayed(pd.read_csv)(fn) for fn in filenames]
df = dd.from_delayed(dfs) # df is a dask dataframe