1. 场景描述
python环境下需要从greenplum/postgresql中,获取算法执行的数据,但是从数据库中查询出来是数组格式的,算法无法使用,需要转换为dataframe格式。
2. 解决方案
结合第三方pandas使用
2.1 数据库调用类
import dbgp as dbgp
data = dbgp.queryGp(sql)
2.2 数据库类
## 导入psycopg2包
import pandas as pd
import psycopg2
def queryGp(sql):
## 连接到一个给定的数据库
conn = psycopg2.connect(dbname="db_laowang", user="laowang", password="123",
port="5432", host="10.192.168.11", client_encoding="UTF-8")
df = pd.read_sql(sql, con=conn)
## 关闭数据库连接
conn.close()
return df
重点就这一行:df = pd.read_sql(sql, con=conn)