使用Python将一个大型csv文件插入到MySQL表中。

7 浏览
0 Comments

使用Python将一个大型csv文件插入到MySQL表中。

我有一个工作流程,需要将一个包含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()

0
0 Comments

使用Python将大型CSV文件插入MySQL表格时出现了问题。问题的原因是在执行命令后没有进行提交操作。解决方法是在关闭游标和连接之前添加conn.commit()进行提交操作。

在使用Python将大型CSV文件插入MySQL表格时,用户遇到了一个问题:执行命令后没有进行提交操作。问题的原因是没有在执行命令后进行提交操作,导致数据没有被正确插入到MySQL表格中。

解决这个问题的方法是在关闭游标和连接之前添加conn.commit()进行提交操作。这样可以确保数据被正确地插入到MySQL表格中。

以下是用户的解决方案:

cursor.commit()

用户在执行命令后添加了cursor.commit()进行提交操作。这样,当关闭游标和连接时,数据将被正确地插入到MySQL表格中。

用户表示,添加conn.commit()之后,问题得到了解决,代码按预期工作。

当使用Python将大型CSV文件插入MySQL表格时,需要记得在执行命令后进行提交操作,以确保数据被正确地插入到MySQL表格中。可以通过添加conn.commit()进行提交操作。

0