zoukankan      html  css  js  c++  java
  • pandas读取各类sql数据源

    大数据分析中,我们经常需要使用pandas工具读取各类数据源并将结果保存到数据库中。

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

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

    一、读写mysql数据

    1.首先安装python连接mysql的驱动,以mysql.connector为例

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

    #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方式

    #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)

    二、读写oracle数据

    1.首先安装python连接oracle的驱动cx_oracle

    第2、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)  

    三、读写impala数据

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

    第2、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进行数据分析了。

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

      

  • 相关阅读:
    016_笼统概述MapReduce执行流程结合wordcount程序
    015_[小插曲]看黄老师《炼数成金Hadoop应用开发实战案例》笔记
    014_HDFS存储架构、架构可靠性分析、副本放置策略、各组件之间的关系
    013_HDFS文件合并上传putmarge功能(类似于hadoop fs -getmerge)
    012_Eclipse中使用 HDFS URL API 事例介绍
    JQuery dataTable插件
    Json对象与Json字符串的转化、JSON字符串与Java对象的转换
    Maven 环境变量设置
    怎样给win7系统硬盘分区
    JDK安装与环境变量配置
  • 原文地址:https://www.cnblogs.com/dotafeiying/p/7597312.html
Copyright © 2011-2022 走看看