使用 python 将大型 csv 文件插入 mysql table
Using python to insert a large csv file into mysql table
我有一个工作流程,我需要获取 500k 行的 csv 并将其导入 mysql table。我有一个似乎工作的 python 脚本,但是当我 select 它时没有数据被保存到实际的 table 中。我正在删除 re-creating table headers 然后尝试批量插入 csv 文件,但看起来数据并没有进入。python console when 运行ning.
脚本到 运行 大约需要 2 分钟,这让我觉得它正在做某事,但是当我 select *来自 table 本身。
我的脚本大致如下:
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()
我有一个工作流程,我需要获取 500k 行的 csv 并将其导入 mysql table。我有一个似乎工作的 python 脚本,但是当我 select 它时没有数据被保存到实际的 table 中。我正在删除 re-creating table headers 然后尝试批量插入 csv 文件,但看起来数据并没有进入。python console when 运行ning.
脚本到 运行 大约需要 2 分钟,这让我觉得它正在做某事,但是当我 select *来自 table 本身。
我的脚本大致如下:
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()