,python,threadpoolexecutor,geocode"/>

首页 > 解决方案 > ThreadPoolExecutor 返回错误

问题描述

我正在尝试在数据帧上并行运行地理编码 api 函数。我正在尝试将数据框划分为固定部分,并使用 ThreadPoolExecutor 在其上并行运行地理编码功能。

我有一个名为 split12() 的函数,它运行地理编码函数。

import censusbatchgeocoder as cg
from censusbatchgeocoder import geocode

def split12(i):
df = pd.read_csv(r'path\addressfile.csv')
df[i:i+2]["id"] = np.arange(len(df[i:i+2]))
df[i:i+2]["hashId"] = df[i:i+2].apply(generateHashKey , axis=1)
results = cg.geocode(df[i:i+2].to_dict("records"))
lii.append(results)

generateHashKey 创建一个哈希键(它工作正常)

然后我试图执行线程池

df = pd.read_csv(r'path\addressfile.csv')
ilist = [i for i in range(0,len(df),2)]
from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor(max_workers=3) as executor:
    rlist = executor.submit(split12,ilist)

当我尝试打印 rlist 时,我收到一条错误消息:

<Future at 0x1ba9696bb08 state=finished raise TypeError>

当我尝试迭代 rlist 时,我收到一条错误消息:

TypeError:“未来”对象不可迭代

我究竟做错了什么?我该怎么做?

标签: pythonthreadpoolexecutorgeocode

解决方案


推荐阅读