python – 在Dask DataFrame中的分区之间分配行
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 在Dask DataFrame中的分区之间分配行,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1384字,纯文字阅读大概需要2分钟。
内容图文
![python – 在Dask DataFrame中的分区之间分配行](/upload/InfoBanner/zyjiaocheng/781/347b4e8b286b4cf88304f19a1b86d025.jpg)
期望:我希望,当我对给定的数据帧进行分区时,行将大致均匀地分布到每个分区中.我希望,当我将数据帧写入csv时,得到的n csvs(在本例中为10)将同样具有大致相等的长度.
现实:当我运行下面的代码时,我发现行而不是偶数分布的行,所有行都在export_results-0.csv中,其余9个csv为空.
问题:是否需要设置其他配置以确保行分布在所有分区中?
from dask.distributed import Client
import dask.dataframe as dd
import pandas as pd
client = Client('tcp://10.0.0.60:8786')
df = pd.DataFrame({'geom': np.random.random(1000)}, index=np.arange(1000))
sd = dd.from_pandas(df, npartitions=100)
tall = dd.merge(sd.assign(key=0), sd.assign(key=0), on='key').drop('key', axis=1)
tall.to_csv('export_results-*.csv').compute()
关于上面的代码:在下面的代码中,我创建了一个1000行的数据帧并将其与自身合并,以创建一个1000000行的长数据帧(目标是最终生成一个瘦而高的表,保持与任何一个的距离. 100k列表中的任何其他几何).
解决方法:
因此,在Dask文档的数据帧性能部分中注意到,两个Dask数据帧之间的连接可能非常昂贵.
通过将Dask数据帧连接到Pandas数据帧,我似乎能够保留分区.以下是对上述代码的示例修改:
df1 = pd.DataFrame({ 'geom': np.random.random(200) }, index=np.arange(200))
sd1 = dd.from_pandas(df1.copy(), npartitions=5).assign(key=0)
tall = dd.merge(sd1, df1.assign(key=0), on='key', npartitions=10).drop('key', axis=1)
tall.to_csv('exported_csvs/res-*.csv')
现在,这实现了维护分区的目标.也就是说,我仍然有兴趣理解为什么在合并两个Dask数据帧时看起来无法保留分区.
内容总结
以上是互联网集市为您收集整理的python – 在Dask DataFrame中的分区之间分配行全部内容,希望文章能够帮你解决python – 在Dask DataFrame中的分区之间分配行所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。