dask - Dask groupby 关于期货
问题描述
我在集群上分散了数据并提交了一个任务。我如何等到所有期货完成并在期货上进行分组。我不想将所有期货都收集回给客户,因为它们很大。我希望所有大型期货都留在集群上并将结果从 groupby 返回给客户端。我在期货上尝试了 pandas groupby 语法,但它说这不是期货上的方法。我正在考虑使用提交,但无法弄清楚语法。
谢谢
def repeat (df, number):
df=pd.DataFrame(np.repeat(df.values,number,axis=0))
return df
data = pd.DataFrame(np.random.random_sample((100,), columns=["test"])
data = client.scatter(data)
futures = client.submit(repeat, data, 1000)
data = client.gather(futures)
到目前为止,这还可以。但现在我希望结果留在工人身上并执行以下熊猫操作:
data["ids"] = data.groupby(["test"]).cumcount()
total = data.groupby(["test"]).sum()
P10 = data.groupby(["test"]).quantile(0.1)
我想这样做是因为 Dataframe 数据非常大,并且只适合多个工作人员。我想要返回的只是数据的聚合(即 groupby)
谢谢 EDIT id 列是分组测试列的 cumcount。基本上我想对多个点进行蒙特卡罗模拟。起始 df 包含对应于每个点的行。然后发送到 dask,每行将乘以 1000 以模拟 1000 次模拟试验。ids 用于跟踪试验编号(其中 1000 个),稍后我可以按 id 分组以获得所有点的每次试验的汇总结果。目前,示例代码显示了 groupby 测试,它是每一行(数据点)的聚合。即 1000 次试验中每个点的平均值和 P10
解决方案
推荐阅读
- java - csv writer 拆分数组中的所有逗号
- python - 使用 for 循环遍历二值化图像可能吗?
- discord - Discord.py-rewrite - 如何使 BOT 在语音通道中自静音或自聋?
- ruby - 如何在Ruby中解析来自curl的表单数据
- powershell - 管道对象到测量对象并保留对象
- neo4j - 如何根据关系类型将路径拆分为子路径?
- ios - CoreData,在表格视图中显示保存的旅程
- c++ - 线程间调用延迟非常低的多线程
- ios - 通过在 UINavigationController 中“弹出”前一个 VIewController 来检测 ViewController 何时出现
- swift - Swift keyPath 与协议