如何将压缩的(gz)CSV文件读入dask Dataframe?[英] How to read a compressed (gz) CSV file into a dask Dataframe?

本文是小编为大家收集整理的关于如何将压缩的(gz)CSV文件读入dask Dataframe?的处理方法,想解了如何将压缩的(gz)CSV文件读入dask Dataframe?的问题怎么解决?如何将压缩的(gz)CSV文件读入dask Dataframe?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

是否有一种方法可以读取通过GZ压缩到dask数据框的.csv文件?

我已经直接尝试了

import dask.dataframe as dd
df = dd.read_csv("Data.gz" )

但是获得一个Unicode错误(可能是因为它正在解释压缩字节)有一个"compression"参数,但是compression = "gz"> compression = "gz"我无法找到任何文档.

使用pandas,我可以直接读取文件而没有任何问题,除了结果炸毁我的内存;-)但是,如果我限制了线的数量.

import pandas.Dataframe as pd
df = pd.read_csv("Data.gz", ncols=100)

推荐答案

实际上这是 dask dask .将文件加载dask.delayed 替补::

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

其他推荐答案

熊猫的当前文档说:

压缩:{'推断','gzip','bz2','zip','xz',note},默认'ceph'

由于"推断"是默认值,这可以解释为什么它与Pandas一起使用.

dask关于 compression 参数的文档:

字符串,例如" gzip"或" xz".必须支持有效的随机访问.将相当于已知压缩算法(GZ,BZ2)的扩展名的文件名相应地自动压缩

这表明它也应至少推断出至少 gz 的压缩.它没有(并且仍然不在0.15.3中)可能是一个错误.但是,它正在使用压缩='gzip'.

即:

import dask.dataframe as dd
df = dd.read_csv("Data.gz", compression='gzip')

其他推荐答案

没有文件,很难说.如果您设置编码like # -*- coding: latin-1 -*-怎么办?或因为read_csv是基于熊猫的,您甚至可以dd.read_csv('Data.gz', encoding='utf-8').这是Python编码的列表: https://docs.python.orgg/3/library/codecs.html#标准编码

本文地址:https://www.itbaoku.cn/post/1727887.html