Python3 读取odps数据库数据

Python3 读取odps数据库数据

pyodps安装

如果未安装pyodps包,则需要先安装:

pip install pyodps

ODPS常用包导入

from odps import ODPS

from odps import DataFrame

import pandas as pd

from collections import defaultdict

连接odps数据库

o = ODPS(access_id='access id', #登陆账号

        secret_access_key='password', #登陆密码

        project='projectname', #odps上的项目名称

        endpoint='http://service.odps.aliyun.com/api') #官方提供的接口

获取数据:

方法一:通过odps内置DataFrame读取,该方法读取的数据结构类型为odps.df.expr.core.DataFrame

def get_odps_table(tb_name):

   data = DataFrame(o.get_table(tb_name))

   data['ds'] = data['ds'].astype('int')

return data

rdata = get_odps_table('tb_name') #获取表数据实例

方法二:通过sql获取数据,该方法得到的数据类型为pandas.core.frame.

DataFrame。

def exe_sql(sql):

   data = []

   with o.execute_sql(sql).open_reader() as reader:

       d = defaultdict(list)  #collection默认一个dict

       for record in reader:

           for res in record:

                d[res[0]].append(res[1]) 

        data = pd.DataFrame.from_dict(d,orient='index').T  

   return data

rdata = exe_sql('select aname,bname from tablename where aid = "1111"') #获取数据实例

你可能感兴趣的:(Python3 读取odps数据库数据)