pandas读取各种sql数据源

大数据分析中,咱们常常须要使用pandas工具读取各种数据源并将结果保存到数据库中。html

本文总结了一些读取和写入经常使用数据库数据的一些方法,包括mysql,oracle,impala等。python

其中读取数据库数据有两种方法,一种是DBAPI2 connection,另外一种是SQLAlchemy engine。下面介绍这两种方法。mysql

1、读写mysql数据sql

1.首先安装python链接mysql的驱动,以mysql.connector为例数据库

2.pandas读取数据,分两种方式:api

#DBAPI2 connection方式链接
import mysql.connector
import pandas as pd
conn
=mysql.connector.connect(host='127.0.0.1',user='root', passwd='password', db='test') sql='select * from mytable' df=pd.read_sql(sql,conn)
#SQLAlchemy engine方式
from sqlalchemy import create_engine
import pandas as pd
engine = create_engine('mysql+mysqlconnector://root:password@10.39.211.198:3306/test')
df=pd.read_sql(sql,engine )

 3.pandas写入数据到mysql只有SQLAlchemy engine方式oracle

#SQLAlchemy engine方式
from sqlalchemy import create_engine
import pandas as pd
engine = create_engine('mysql+mysqlconnector://root:password@10.39.211.198:3306/test')
df.to_sql('mytable',con=engine,if_exists='append',index=False)

 

2、读写oracle数据app

1.首先安装python链接oracle的驱动cx_oracle工具

第二、3步骤同上,只是数据库驱动的写法不一样。大数据

oracle写成:

from sqlalchemy import create_engine
conn=cx_Oracle.connect('scott','tiger','10.0.0.100:1521/ORCL')
engine=create_engine('oracle://scott:tiger@10.0.0.100:1521/ORCL', echo=True)  

3、读写impala数据

1.首先安装python链接impala的驱动(参照个人博客http://www.cnblogs.com/dotafeiying/p/6956265.html)

第二、3步骤同上,只是数据库驱动的写法不一样。

impala写成:

from impala.dbapi import connect
from sqlalchemy import create_engine

conn = connect(host='127.0.0.1',port=21050,database='db')
engine=create_engine('impala://127.0.0.1:21050/db')

用pandas往impala写入数据时可能会抛出数据类型错误,

 

要注意impala的数据类型,下面给一个我在实际项目中解决的例子:

from sqlalchemy.sql.sqltypes import String
df.to_sql('address',con=sqlconn,if_exists='append',index=False,dtype={'address': String})

 必定要加后面的 dtype={'address': String}

如今,你就能够尽情的用pandas进行数据分析了。

以上是我我的的一些总结。

相关文章
相关标签/搜索