pandas - Dask:从提交的作业中访问已发布的数据集
问题描述
# Init
import time
import pandas as pd
import numpy as np
from dask.distributed import Client
client = Client()
# Publish data
dataset_name = 'my_dataset'
df_my_dataset = pd.DataFrame(np.ones((2,3)), dtype=np.float32)
client.publish_dataset(df_my_dataset, name=dataset_name)
在那里:
In [13]: client.list_datasets()
Out[13]: ('my_dataset',)
为 dask 创建提交函数。在这里,我想按名称访问已发布的数据集:
# submit function
def get_gate1_rows(df_from_submit):
return df_from_submit.mean()
# return df.mean() + my_dataset.mean() #### <<<<<<< How to do this?
最后提交:
# Submit code
df_zeros = np.zeros((2,3), dtype=np.float32)
future = client.submit(get_gate1_rows, df_zeros)
time.sleep(2)
result = future.result()
这会产生 - 但应该是0.5
:
In [41]: result
Out[41]: 0.0
那么我怎样才能published dataset
从dask工作中访问呢?
解决方案
要访问任务中已发布的数据集,您需要get_client
:
def get_gate1_rows(df_from_submit):
client = distributed.get_client()
my_dataset = client.get_dataset('my_dataset')
return df_from_submit.mean() + my_dataset.mean()
(答案是三个 1,因为 df_zeros.mean()->0, df_my_dataset.mean()->1,1,1)
推荐阅读
- python - 调用命令然后写入同一个子进程
- excel - 如何解决 VBA 中工作簿之间的复制和粘贴问题?
- ios - Apple 是否允许从 Web 应用程序购买内容?
- selenium - 如何在文本框中为 Selenium 中的蛋 99 发送两次号码
- r - 在R中的轴上添加一条独立于y的线
- javascript - 是否有 JS 函数或方法以 4 位格式返回数字?
- android - 即使一个 Observable 发出 onError 也将两个 observable 合并为 List 并返回值
- html - 我应该如何为课堂赋予动态风格?
- django - 在分支中重命名模型会导致所有其他分支失败
- html - 具有剪辑路径的元素中的水平(子)像素间隙