通过pd.to_sql()将DataFrame写入Mysql
循环创建表,并且创建主键、外键
import pandas as pd
from sqlalchemy import create_engine
from sqlalchemy.types import NVARCHAR, Float, Integer def pd2sql():
"""
to_sql目前只支持两类mysql引擎一个是sqlalchemy和sqlliet3
:return:
"""
# 初始化数据库连接,使用pymysql模块
# MySQL的用户:root, 密码:147369, 端口:3306,数据库:mydb
# ?charset=utf8 指定数据库编码
engine = create_engine('mysql+pymysql://root:@localhost:3306/pandas2mysql?charset=utf8')
conn = engine.connect()
for i in range(1, 10):
# 指定字段的数据类型
dtypedict = {
'index_code': NVARCHAR(length=255),
'date': NVARCHAR(length=255),
'open': NVARCHAR(length=255),
'close': NVARCHAR(length=255),
'low': NVARCHAR(length=255),
'high': NVARCHAR(length=255),
'volume': NVARCHAR(length=255),
'money': NVARCHAR(length=255),
'change': NVARCHAR(length=255)
} csv_path = r'E:\data\yucezhe\trading-data-push.20190201\2019-02-01 index data.csv' # 读取本地CSV文件
df = pd.read_csv(csv_path).head() # 将DataFrame储存为MySQL中的数据表,不储存index列
df.to_sql(f'csv_table{i}', engine, if_exists='replace', index=False, dtype=dtypedict) # 执行原生sql语句
# 设置主键
conn.execute(f"alter table csv_table{i} add constraint p_key primary key (index_code)") # 从表设置外键
if i%2 == 0:
conn.execute(
f"alter table csv_table{i-1} add foreign key (index_code) references csv_table{i}(index_code)") print(f"Write to MySQL successfully! ---- csv_table{i}")
engine.dispose() pd2sql() # 对已存在的表做主键:alter table csv_short1 add constraint p_key primary key (index_code); # 对已存在的表做外键:alter table csv_short1 add foreign key (index_code) references csv_short2(index_code); # 内连接查询:select * from a,b where a.x = b.x
通过pd.to_sql()将DataFrame写入Mysql的更多相关文章
- Spark:将DataFrame写入Mysql
Spark将DataFrame进行一些列处理后,需要将之写入mysql,下面是实现过程 1.mysql的信息 mysql的信息我保存在了外部的配置文件,这样方便后续的配置添加. //配置文件示例: [ ...
- SparkSQL之dataframe写入mysql报错
一.异常情况及解决方案 在使用Spark SQL的dataframe数据写入到相应的MySQL表中时,报错,错误信息如下: 代码的基本形式为: df.write.jdbc(url, result_ta ...
- Spark操作MySQL,Hive并写入MySQL数据库
最近一个项目,需要操作近70亿数据进行统计分析.如果存入MySQL,很难读取如此大的数据,即使使用搜索引擎,也是非常慢.经过调研决定借助我们公司大数据平台结合Spark技术完成这么大数据量的统计分析. ...
- 将pandas的DataFrame数据写入MySQL数据库 + sqlalchemy
将pandas的DataFrame数据写入MySQL数据库 + sqlalchemy import pandas as pd from sqlalchemy import create_engine ...
- Spark操作dataFrame进行写入mysql,自定义sql的方式
业务场景: 现在项目中需要通过对spark对原始数据进行计算,然后将计算结果写入到mysql中,但是在写入的时候有个限制: 1.mysql中的目标表事先已经存在,并且当中存在主键,自增长的键id 2. ...
- spark基础知识介绍(包含foreachPartition写入mysql)
数据本地性 数据计算尽可能在数据所在的节点上运行,这样可以减少数据在网络上的传输,毕竟移动计算比移动数据代价小很多.进一步看,数据如果在运行节点的内存中,就能够进一步减少磁盘的I/O的传输.在spar ...
- PHP如何通过SQL语句将数据写入MySQL数据库呢?
1,php和MySQL建立连接关系 2,打开 3,接受页面数据,PHP录入到指定的表中 1.2两步可直接使用一个数据库链接文件即可:conn.php <?phpmysql_connect(&qu ...
- python执行shell获取硬件参数写入mysql
最近要获取服务器各种参数,包括cpu.内存.磁盘.型号等信息.试用了Hyperic HQ.Nagios和Snmp,它们功能都挺强大的,但是于需求不是太符,亦或者太heavy. 于是乎想到用python ...
- saltstack:使用教程之一安装及客户端返回写入MySQL
saltstack使用教程: 1.安装: 需要epel的yum源,没有的话把下面的复制并新建个文件 /etc/yum.repos.d/epel.repo 粘贴即可: [epel] name=Extra ...
随机推荐
- xml的序列化与反序列化求一个好用的东西,类似,newtonsoft.net转json的东西。xml里面的结构和数据库不一致..................
xml的序列化与反序列化求一个好用的东西,类似,newtonsoft.net转json的东西.xml里面的结构和数据库不一致..................
- 【JavaNIO的深入研究4】内存映射文件I/O,大文件读写操作,Java nio之MappedByteBuffer,高效文件/内存映射
内存映射文件能让你创建和修改那些因为太大而无法放入内存的文件.有了内存映射文件,你就可以认为文件已经全部读进了内存,然后把它当成一个非常大的数组来访问.这种解决办法能大大简化修改文件的代码.fileC ...
- db2
关于3种导入导出操作进行简单的介绍:export:导出数据,支持IXF,DEL或WSFimport:导入数据,可以向表中导入数据,支持上面提到的4种文件类型. load:导入数据,功能和impo ...
- hadoop学习笔记之-hbase完全分布模式安装-5
http://blog.csdn.net/lichangzai/article/details/8441975 http://blog.csdn.net/jpiverson/article/detai ...
- Cookie管理工具
Cookie Editor 是管理 Cookie 的工具,能识别并编辑IE.Firfox.Netscope Cookie 文件,控制个人隐私信息,修改 Cookie 使用期限,删除历史文件,编辑和删除 ...
- go语言的time.Sleep
首先:time.sleep单位为:1ns (纳秒) 转换单位: 1纳秒 =1000皮秒 1纳秒 =0.001 微秒 1纳秒 =0.000 001毫秒 1纳秒 =0.0 ...
- python编码问题1
爬虫,新手很容易遇到编码解码方面的问题.在这里总结下. 如果处理不好编码解码的问题,爬虫轻则显示乱码,重则报错UnicodeDecodeError: 'xxxxxx' codec can't deco ...
- JBPM4.4_管理流程定义
1. 管理流程定义 没有更新功能 1.1. 部署流程定义 注意区分Deployment与ProcessDefinition 1.1.1. 示例代码1:流程定义有关文件在classpath中 Strin ...
- excel——之锁定表头不可编辑
前言: 设置excel表头不可编辑功能.效果如下: 这就意味着,不可随意更改表头数据,除非你有密码. 过程: 1.先随意右键打开一个单元格,查看其中的“设置单元格属性”,即 2.在选中想要编辑的那些数 ...
- ceph 存储安装部署
环境准备 1.三台服务器 cephnode01 192.168.254.83 cephnode02 192.168.254.84 cephnode03 192.168.254.85 2.基本环境配置 ...