费了老大劲儿了,路过的留个言呗

需求:将csv数据导入mysql,数据量差不多几百W条

思路:使用python导入mysql

试了无数种方法显示

Query OK, 0 rows affected, 0 warnings (0.80 sec)

瞬间回到解放前

下面上我的终极大招!!!

具体实现:

1.使用python将csv另存为python

# _*_ coding: utf-8 _*_
__author__ = 'wenshuaishuai'
__date__ = '2021/11/25 18:18'
 
import pandas as pd
import os

csvPath = r'' #csv所在路径
outPath = r'' #导出目录

csvLists = os.listdir(csvPath)  # 列出文件夹下所有的目录与文件
 
for csvlist in csvLists:
    (filepath, fullname) = os.path.split(csvlist)  # 获取路径以及文件全名
    (prename, suffix) = os.path.splitext(fullname)  # 获取文件名(不含后缀)以及后缀名
    print (prename,csvlist)
    df = pd.read_csv(csvPath+'\\'+csvlist,encoding='gbk')
    df.to_csv(outPath+'\\'+prename+'.txt',encoding='utf-8',sep=',', index=None)

2.打开cmd!

此处替换为你的路径哦

cd C:\Program Files\MySQL\MySQL Server 8.0\bin
mysql --local-infile=1 -h 127.0.0.1 -u root -p

 此处替换为你的schema哦

 use base
LOAD DATA LOCAL INFILE 'D:\\wenxiaoyu\\Desktop\\回算.txt' INTO TABLE first_order FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;

这个路径不可以有空格!!!!!!!!!!!!!!!!!!

手把手教了这次真的是

 LOAD DATA LOCAL INFILE 'D:\\wenxiaoyu6\\Desktop\\CS去年万家产出.txt' INTO TABLE first_order FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;
Query OK, 1278 rows affected, 1278 warnings (0.03 sec)
Records: 1278  Deleted: 0  Skipped: 0  Warnings: 1278

修改之后出现了以下几种warning

1.查看warning

show warnings;

2.有以下几种

Warning | 1262 | Row 76 was truncated; it contained more data than there were input columns
 Warning | 1366 | Incorrect string value: '\xE5\x8A\xBC' for column 'sales_name' at row 95171

第一种,看了一下csv和表的column对不上

第二种,删除sales_name字段以及文件中该字段

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐