我有一个参数的数据帧,并对每一行应用一个函数。该函数本质上是一对sql_查询和对结果的简单计算。
我试图利用Dask的多处理,同时保持结构和接口。下面的例子很有效,确实有很大的推动作用:
def get_metrics(row):
record = {'areaName': row['name'],
'areaType': row.area_type,
'borough': row.Borough,
'fullDate': row['start'],
'yearMonth': row['start'],
}
Q = Qsi.format(unittypes=At,
start_date=row['start'],
end_date=row['end'],
freq='Q',
area_ids=row['descendent_ids'])
sales = _get_DF(Q)
record['salesInventory'] = len(sales)
record['medianAskingPrice'] = sales.price.median()
R.append(record)
R = []
x = ddf.map_partition(lambda x: x.apply(_metric, axis=1), meta={'result': None})
x.compute()
result2 = pd.DataFrame(R)
.apply
'DataFrame' object has no attribute 'name'
...
R = list()
y = ddf.apply(_metrics, axis=1, meta={'result': None})
然而,ddf。head()表示有一个
name