to_csv
我通过使用 utf8 编码编写 pandas DataFrame 使用 python 脚本生成 .csv 文件。
consEx.to_csv(os.path.join(base_dir, "Database/Tables/Consumption Expenditure/consumptionExpenditure.csv"), encoding = 'utf8', index = False)
接下来,我通过 , 将 Amazon RDS MySQL 上传Load Data Local Infile
到一个Charset
也设置为 utf8 的表中。
CREATE TABLE IF NOT EXISTS Consumer.Expenditure (
ceID INT NOT NULL AUTO_INCREMENT ,
ceCategory INT NOT NULL,
year INT NULL,
countryID INT NOT NULL,
ceYoY DEC(15,2) NULL,
dateCreated DATE NOT NULL ,
lastModified DATETIME NULL DEFAULT NULL ,
dateDeleted DATETIME NULL DEFAULT NULL ,
PRIMARY KEY (ceID) ,
CONSTRAINT ce_fk_countries
FOREIGN KEY (countryID)
REFERENCES ConsumerAlpha.Countries (countryID)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
CHARSET utf8
ENGINE = InnoDB;
SHOW WARNINGS;
现在,只有当我第一次打开并手动保存 csv 文件时,上传才有效 - 相同的名称,相同的位置。否则,它会失败而不会出错 - 只是不导入任何东西。但是,如果我打开、保存和关闭,上传就完美了。
LOAD DATA LOCAL
INFILE '/Users/xxx/Dropbox/Data/Database/Tables/Consumption Expenditure/consumptionExpenditure.csv'
INTO TABLE Consumer.Expenditure
fields terminated by ','
optionally enclosed by '"'
lines terminated by '\r'
IGNORE 1 LINES
(ceCategory, year, countryID, ceYoY, dateCreated)
SET dateCreated = NOW();
为了避免这一步,我有什么遗漏吗?对于大型表,可能有许多 .csv 文件。我环顾四周,但在任何地方都没有遇到过这个特殊问题。谢谢!