当前位置: 首页 > news >正文

导入CSV文件到MySQL

一.使用命令行进行导入

LOAD DATA LOCAL INFILE '/data/home/narieliu/titanic.csv'

INTO TABLE tb1

FIELDS TERMINATED BY ','

ENCLOSEDBY '"'

LINES TERMINATED BY '\n'

IGNORE 1 LINES;

  加local是在客户端导入,不加是在服务端导入

  客户端因为权限无法导入的可以使用脚本进行导入,但是相比较效率会下降

二.使用python脚本进行导入

        使用时,可根据需求进行相应的修改,需要环境python3,以及安装pymysql库

import csv
import pymysql# 数据库连接参数
db_config = {'host': 'your_cloud_db_host','user': 'your_username','password': 'your_password','database': 'your_database','charset': 'utf8mb4','cursorclass': pymysql.cursors.DictCursor
}# CSV 文件路径
csv_file_path = 'CSV文件路径'# 插入语句,字段名和占位符要对应
insert_sql = """
INSERT INTO tb1 (PassengerId, Survived, Pclass, Name, Sex, Age, SibSp, Parch, Ticket, Fare, Cabin, Embarked
) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s
)
"""def main():connection = pymysql.connect(**db_config)try:with connection.cursor() as cursor, open(csv_file_path, 'r', encoding='utf-8') as f:reader = csv.reader(f)header = next(reader)  # 跳过表头batch_size = 1000batch = []for row in reader:# 处理空值,转换数据类型等(根据需要调整)# 这里简单示范,空字符串转 Nonerow = [None if x == '' else x for x in row]# 转换数值字段类型(示例)# csv中默认为字符串,根据需要进行转换row[0] = int(row[0]) if row[0] is not None else None  row[1] = int(row[1]) if row[1] is not None else None  row[2] = int(row[2]) if row[2] is not None else None  # Name, Sex 保持字符串row[5] = float(row[5]) if row[5] is not None else None row[6] = int(row[6]) if row[6] is not None else None  row[7] = int(row[7]) if row[7] is not None else None # Ticket 字符串row[9] = float(row[9]) if row[9] is not None else None # Cabin, Embarked 字符串batch.append(row)if len(batch) >= batch_size:cursor.executemany(insert_sql, batch)connection.commit()batch.clear()# 插入剩余数据if batch:cursor.executemany(insert_sql, batch)connection.commit()print("数据导入完成!")except Exception as e:print("导入出错:", e)finally:connection.close()if __name__ == '__main__':main()
http://www.xdnf.cn/news/1280431.html

相关文章:

  • 打破内网枷锁!TRAE SOLO + cpolar 让AI开发告别“孤岛困境”
  • 腾讯 iOA 测评 | 横向移动检测、病毒查杀、外设管控、部署性能
  • 浏览器CEFSharp+X86+win7 之 测试抖音小店订单抓取(八)
  • 运动规划实战案例 | 基于多源流场(Flow Field)的路径规划(附ROS C++/Python实现)
  • Nmap 渗透测试弹药库:精准扫描与隐蔽渗透技术手册
  • Qt串口通信设计指南:通信层架构与实践
  • [go] 命令模式
  • 【软考架构】主流数据持久化技术框架
  • android 换肤框架详解1-换肤逻辑基本
  • 2025第十六届蓝桥杯大赛青少组省赛C++真题(初级组和中级组)
  • 数学建模——灰色预测(GM11)
  • 北京JAVA基础面试30天打卡07
  • HTTPS的应用层协议
  • react+vite-plugin-react-router-generator自动化生成路由
  • 安全等级认证系列 | 星环ArgoDB获CC EAL2安全认证,数据安全实力获国际认可
  • Linux入门DAY21
  • 用 Python 绘制企业年度财务可视化报告 —— 从 Excel 到 9 种图表全覆盖
  • 读《精益数据分析》:媒体内容平台全链路梳理
  • 低延迟RTSP|RTMP视频链路在AI驱动无人机与机器人操控中的架构实践与性能优化
  • TRS(总收益互换)系统架构设计:多市场交易的技术实现分析
  • 每日五个pyecharts可视化图表-line:从入门到精通 (3)
  • 常用设计模式系列(十九)- 状态模式
  • 闸机控制系统从设计到实现全解析:第 5 篇:RabbitMQ 消息队列与闸机通信设计
  • HBase BlockCache:LRU Cache
  • Agent用户体验设计:人机交互的最佳实践
  • redis(2)-java客户端使用(IDEA基于springboot)
  • 【图像处理基石】UE输出渲染视频,有哪些画质相关的维度和标准可以参考?
  • FlinkSql(详细讲解二)
  • IDE认知革命:JetBrains AI Assistant插件深度调教手册(终极实战指南)
  • 服务器配置实战:从 “密码锁” 到 “分工协作” 的知识点详解