Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用python对dataframe进行多处理SQL查询_Python_Sql_Postgresql_Multiprocessing - Fatal编程技术网

用python对dataframe进行多处理SQL查询

用python对dataframe进行多处理SQL查询,python,sql,postgresql,multiprocessing,Python,Sql,Postgresql,Multiprocessing,我正在改编一个python脚本,我发现它是一个类似问题的答案(56400556)。该脚本可以工作,但当前SQL结果存储在一个列表中,而我希望将其导出到数据帧(或CSV的第二个选项) 有没有办法并行运行SQL查询(因为每个查询大约需要10分钟)并将这些数据存储在数据帧中。它可以是一个包含所有查询结果的数据帧,也可以是每个查询一个数据帧,这无关紧要 第二个问题是避免将所有SQL查询仅列为一个参数更改,而是有一个SQL查询和一个要输入的参数列表(例如:“UK”、“IT”、“US”等) 谢谢您是否在国家

我正在改编一个python脚本,我发现它是一个类似问题的答案(56400556)。该脚本可以工作,但当前SQL结果存储在一个列表中,而我希望将其导出到数据帧(或CSV的第二个选项)

有没有办法并行运行SQL查询(因为每个查询大约需要10分钟)并将这些数据存储在数据帧中。它可以是一个包含所有查询结果的数据帧,也可以是每个查询一个数据帧,这无关紧要

第二个问题是避免将所有SQL查询仅列为一个参数更改,而是有一个SQL查询和一个要输入的参数列表(例如:“UK”、“IT”、“US”等)


谢谢

您是否在
国家/地区
上添加了索引?是的,我在SQL表中添加了索引,但这不会加快查询速度数据库中有多少行?数以百万计的?
from multiprocessing import Pool
import pandas as pd
import psycopg2
import os

query_load = [("SELECT * FROM customer_table WHERE country ='UK' "),
             ("SELECT * FROM customer_table  WHERE country ='IT' ")]

db_conn = psycopg2.connect(
    host="hostname",
    database="databasename",
    user="username",
    password="password")

def read_sql(query):
    return pd.read_sql(query, db_conn)

if __name__ == '__main__':
    with Pool() as p:
        data_load =  p.map(read_sql, query_load)
    print(data_load)