Python 从dask数据框保存多个拼花文件
我想从一个Dask数据框中保存多个拼花文件,一个拼花文件用于特定列中的所有唯一值。因此,拼花地板文件的数量应等于该列中唯一值的数量 例如,给定以下数据帧,我想保存四个拼花地板文件,因为列“a”中有四个唯一的值 我不确定在Dask数据帧上循环是否是扩大规模的正确方法(可能Python 从dask数据框保存多个拼花文件,python,dask,parquet,Python,Dask,Parquet,我想从一个Dask数据框中保存多个拼花文件,一个拼花文件用于特定列中的所有唯一值。因此,拼花地板文件的数量应等于该列中唯一值的数量 例如,给定以下数据帧,我想保存四个拼花地板文件,因为列“a”中有四个唯一的值 我不确定在Dask数据帧上循环是否是扩大规模的正确方法(可能unique().compute()会比我的内存大)。此外,我不确定是否必须事先订购 如果你有一些建议如何正确地实施这一点或事情要考虑,我会很高兴 这不完全是您想要的,但是可以使用的选项上的分区 ddf.to\u拼花地板(“fil
unique().compute()
会比我的内存大)。此外,我不确定是否必须事先订购
如果你有一些建议如何正确地实施这一点或事情要考虑,我会很高兴 这不完全是您想要的,但是可以使用
的选项上的分区
ddf.to\u拼花地板(“file\u parquet”,schema=“推断”,partition\u on=“A”)
请注意,这并不能保证每个分区都有一个您想要的文件,相反,在file\u parquet
中会有子文件夹,其中可能包含多个文件
import pandas as pd
from dask import dataframe as dd
df = pd.DataFrame(
{
"A": [1, 1, 2, 3, 1, 3, 6, 6],
"B": ["A", "L", "C", "D", "A", "B", "A", "B"],
"C": [1, 2, 3, 4, 5, 6, 7, 8],
}
)
ddf = dd.from_pandas(df, npartitions=2)
for i in ddf["A"].unique().compute():
ddf.loc[ddf["A"] == i].to_parquet(f"file_{i}.parquet", schema="infer")