0

to_csvutf8 エンコーディングを使用してpandas DataFrame を作成することにより、python スクリプトを使用して .csv ファイルを生成します。

consEx.to_csv(os.path.join(base_dir, "Database/Tables/Consumption Expenditure/consumptionExpenditure.csv"), encoding = 'utf8', index = False)

次に、同様に utf8 に設定さLoad Data Local Infileれたテーブルに、経由で Amazon RDS MySQL にアップロードします。Charset

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 ファイルが存在する場合があります。私はかなり見回しましたが、この特定の問題はどこにもありませんでした。ありがとう!

4

1 に答える 1