Async-Pandas Read_SQL和Ayncio?

本教程将介绍Async-Pandas Read_SQL和Ayncio?的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

Async-Pandas Read_SQL和Ayncio? 教程 第1张

问题描述

谁能给我指个方向,告诉我怎么解决下面这个问题。我正在尝试使用Pandas、Read_SQL和Ayncio提出一个解决方案。我要将表记录从一个数据库迁移到另一个数据库。

我想做以下事情:

table 1
.
.
.
table n

我有这个功能:

def extract(table):
 try:
  df = pd.DataFrame()
  df = pd.concat(
  [chunk for chunk in
pd.read_sql(sql,
con=CONNECTION,
chunksize=10**5)]
  )
 except Exception as e:
  raise e
 else:
  return df

我希望并行运行这些操作,而不是逐个运行。

extract(table1)
extract(table2)
.
.
extract(tablen)

推荐答案

Asyncio是关于将非阻塞代码组织到回调和协程中。并行运行CPU密集型代码是线程的一个用例:

from concurrent.futures import ThreadPoolExecutor

with ThreadPoolExecutor() as executor:
 frames = list(executor.map(extract, all_tables))

这是否真的会比顺序代码运行得更快取决于pd.read_sql是否释放GIL。

好了关于Async-Pandas Read_SQL和Ayncio?的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。