pyodps操作maxCompute
时间:2020-04-28
本文章向大家介绍pyodps操作maxCompute,主要包括pyodps操作maxCompute使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
连接ODPS
from odps import ODPS odps = ODPS('**your-access-id**', '**your-secret-access-key**', '** your-default-project**', endpoint='**your-end-point**')
your-default-project**', endpoint='**your-end-point**')
这两个可省略,通过get_project命令获取到某个项⽬空间
创建非分区表data_temp:table_name,data_count,time 三个字段
table = odps.create_table('data_temp','table_name string, data_count bigint, time datetime',if_not_exists=True)
操作表
t = odps.get_table('data_temp')
插入数据,使用列表的形式
records = [['lrb', 344322, '2020-04-28 14:09:37'], ['zcfzb', 4343434, '2020-04-28 14:09:37'], ['xjllb', 21142232, '2020-04-28 14:09:37'], ['test', 343242, '2020-04-28 14:09:37']]
odps.write_table('data_temp', records)
读取表中数据
with t.open_reader() as reader: count = reader.count for record in reader: #处理每一条数据
使用dataframe
df = t.to_df()
注:dataframe是maxCompute自己的,不具备pandas的dataframe一些功能(如:to_csv)
可以转成pandas的dataframe
pd_df = df.to_pandas()
打印如下
table_name data_count time 0 lrb 344322 2020-04-28 14:09:37 1 zcfzb 4343434 2020-04-28 14:09:37 2 xjllb 21142232 2020-04-28 14:09:37 3 test 343242 2020-04-28 14:09:37
介于此,我们可以将数据直接导入MYSQL
from sqlalchemy import create_engine connect = create_engine('mysql+pymysql://root:mysql@172.20.10.12:3306/odps?charset=utf8') pd_df.to_sql("data_sync", connect, if_exists='append', index=False)
其中data_sync是mysql对应的表名,connect是mysql连接
由于我的Mysql表没有建立主键,所以当代码重复执行后,会写入多次。
需要注意的是:ODPS的表名和MYSQL的表名尽量保持一致,不然会报错。解决办法是导入mysql之前,更改dataframe列名即可。
原文地址:https://www.cnblogs.com/sealong/p/12794387.html
- Wordpress <= 4.6.1 使用主题文件触发存储型XSS 漏洞分析
- 如何跨平台在本地开发环境提交MapReduce作业到CDH集群
- 区块链行业的机会
- KEGG数据库的rest API(附带R语言小技巧)
- 如何使用Java代码访问HDFS.docx
- Django CSRF Bypass (CVE-2016-7401) 漏洞分析
- 如何使用Cloudera Manager禁用YARN的HA
- Web Worker 中的 importScripts 和 baseHref 同源策略绕过问题
- 如何使用Java代码访问CDH的Solr服务
- Safari UXSS漏洞分析(CVE-2016-4758)
- Sqoop抽取Hive Parquet表数据到MySQL异常分析
- Hue中使用Oozie创建Ssh工作流时sudo命令执行失败问题分析
- [译]Safari URL重定向漏洞(CVE-2016-4585)利用分析
- Hive中的Timestamp类型日期与Impala中显示不一致分析(补充)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Redis SDS 深入一点,看到更多!
- Centos7下Oracle 11g r2 本地/远程 用exp/imp命令快速导入导出数据 实践笔记
- js常用函数大全107个
- xtraReprot 动态绑定数据 数据列动态
- 线上问题分析之java dump文件生成
- python基础知识
- AtCoder Beginner Contest 177 A ~ E
- 2017 年ICPC 中国大陆区域赛铜牌题解
- 搜索(DFS BFS)专题练习
- AtCoder Beginner Contest 171
- AtCoder Beginner Contest 173 A ~ F(已经补完)
- AtCoder Beginner Contest 174 A ~ E
- AtCoder Beginner Contest 170
- 【队伍训练3】Codeforces Round #661 (Div. 3)
- 购物