Dask是否可以并行读取大型csv文件并将它们拆分为多个较小的文件?
答案 0 :(得分:1)
您好,Nutsa Nazgaide,欢迎您。首先,我建议您阅读有关how-to-ask和mcve的信息。您的问题足够好,但是对原始数据框的样本进行抽样将非常有用。我将生成一个基本的数据框,但是在您的情况下逻辑应该没有太大不同,因为您只需要考虑位置即可。
import dask.dataframe as dd
import numpy as np
import pandas as pd
import string
letters = list(string.ascii_lowercase)
N = int(1e6)
df = pd.DataFrame({"member":np.random.choice(letters, N),
"values":np.random.rand(N)})
df.to_csv("file.csv", index=False)
parquet
文件(文件夹)如果您很高兴以parquet
的形式输入输出,则可以将选项partition_on
用作
df = dd.read_csv("file.csv")
df.to_parquet("output", partition_on="member")
如果您确实需要csv
,则可以转换为这种格式。我强烈建议您将数据移至parquet
。
答案 1 :(得分:0)
是的,dask可以读取大型CSV文件。它将它们分成大块
df = dd.read_csv("/path/to/myfile.csv")
然后,在保存时,Dask始终将CSV数据保存到多个文件中
df.to_csv("/output/path/*.csv")
有关更多信息,请参见read_csv和to_csv文档字符串。