python - 使用 dask 将镶木地板文件拆分成更小的块
问题描述
我正在尝试使用以下代码使用 DASK 拆分镶木地板文件
import dask.dataframe as pd
df = pd.read_parquet(dataset_path, chunksize="100MB")
df.repartition(partition_size="100MB")
pd.to_parquet(df,output_path)
我在输入中只有一个物理文件,即 file.parquet
该脚本的输出也只有一个文件,即part.0.parquet。
根据 partition_size 和 chunksize 参数,我应该在输出中有多个文件
任何帮助,将不胜感激
解决方案
df.repartition(partition_size="100MB")
返回一个Dask Dataframe。
你必须写:
df = df.repartition(partition_size="100MB")
您可以查看创建的分区数df.npartitions
此外,您可以使用以下内容编写镶木地板文件:
df.to_parquet(output_path)
因为 Parquet 文件旨在处理大文件compression=
,所以在编写 parquet 文件时还应该考虑使用该参数。
你应该得到你所期望的。
注意:写作import dask.dataframe as pd
具有误导性,因为import dask.dataframe as dd
常用
推荐阅读
- python - 当我尝试更新时,我的 Django 图像无法上传
- javascript - 如何在父 ExtJs(Sencha) 中执行子方法
- node.js - 如何使用socket.io从控制器而不是建立连接的文件中发出一些数据
- jquery - Jquery通过选择器获取选定下方最近的元素
- postgresql - 如何使用 postgresql 从两个单独的时间测量间隔时间
- javascript - 编译为 JavaScript 时,有没有办法在 Haxe 中对类型进行别名?
- javascript - 反应窗口卸载事件不会触发
- python - 熊猫“部分融化”或“集体融化”
- azure - 如何使用 Arm 模板更新现有 Azure Vm 规模集
- vb.net - Keyboard.SendKeys 是 Forms.Sendkeys 的更新?