使用python在mysql表中插入一个大型csv文件

使用python在mysql表中插入一个大型csv文件,python,mysql,mysql-connector-python,Python,Mysql,Mysql Connector Python,我有一个工作流,需要获取500k行csv并将其导入mysql表。我有一个python脚本,它似乎正在工作,但是当我选择它时,没有数据被保存到实际的表中。我正在删除并重新创建表头,然后尝试批量插入csv文件,但看起来数据没有进入。运行时,python控制台中不会报告任何错误 脚本运行大约需要2分钟,这让我觉得它正在做一些事情,但当我从表本身选择*时,除了列标题之外,我什么也看不到 我的脚本大致如下: import pandas as pd import mysql.connector dataf

我有一个工作流,需要获取500k行csv并将其导入mysql表。我有一个python脚本,它似乎正在工作,但是当我选择它时,没有数据被保存到实际的表中。我正在删除并重新创建表头,然后尝试批量插入csv文件,但看起来数据没有进入。运行时,python控制台中不会报告任何错误

脚本运行大约需要2分钟,这让我觉得它正在做一些事情,但当我从表本身选择*时,除了列标题之外,我什么也看不到

我的脚本大致如下:

import pandas as pd
import mysql.connector

dataframe.to_csv('import-data.csv', header=False, index=False)

DB_NAME = 'SCHEMA1'
TABLES = {}
TABLES['TableName'] = (
"CREATE TABLE `TableName` ("
"`x_1` varchar(10) NOT NULL,"
"`x_2` varchar(20) NOT NULL,"
"PRIMARY KEY (`x_1`)"
") ENGINE = InnoDB")

load = """
LOAD DATA LOCAL INFILE 'import-data.csv'
INTO TABLE SCHEMA1.TableName
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
"""

conn = mysql.connector.connect(
    host=writer_host,
    port=port,
    user=username,
    password=password,
    database=username,
    ssl_ca=cert_path
) 

cursor = conn.cursor(buffered=True)
cursor.execute("DROP TABLE IF EXISTS SCHEMA1.TableName")
cursor.execute(TABLES['TableName'])
cursor.execute(load)
cursor.close()
conn.close()

执行命令后缺少提交

cursor.commit()

还是这个?谢谢,就这样。在关闭光标和conn之前,我添加了
conn.commit()
,它按预期工作。