pandas - pandas df.to_parquet 写入多个较小的文件
问题描述
是否可以使用 Pandas 的DataFrame.to_parquet
功能将写入拆分为多个近似所需大小的文件?
我有一个非常大的 DataFrame (100M x 100),并且正在df.to_parquet('data.snappy', engine='pyarrow', compression='snappy')
用于写入文件,但这会产生一个大约 4GB 的文件。相反,我希望将其拆分为许多〜100MB 的文件。
解决方案
我最终使用了 Dask:
import dask.dataframe as da
ddf = da.from_pandas(df, chunksize=5000000)
save_dir = '/path/to/save/'
ddf.to_parquet(save_dir)
这会保存到 里面的多个 parquet 文件中save_dir
,其中每个子 DataFrame 的行数是chunksize
. 根据您的 dtypes 和列数,您可以调整它以使文件达到所需的大小。
推荐阅读
- python - 如何从 Countvectorizer token_pattern 中保留 #hashtag 和 @mention 特征
- java - Hibernate Query Language (HQL) QueryException: could not resolve property: Transactions of: classes.Advicenote,我该如何解决这个问题?我很困惑
- c++ - 对象如何获得指向它所属的类对象的指针 c++
- .net-core - ASP.NET Core MVC 项目无法加载程序集
- python - 拆分韩文和数字
- php - 如何在 Woocommerce 中仅获取可用性变化计数
- javascript - 是否可以在不知道父键的情况下解构嵌套对象?
- php - 如何在 CodeIgniter 中进行基于角色的访问控制?
- java - 解析 XML 并替换来自不同数据源的值
- r - 多个类别分组变量的条形图