2017-03-07 6 views
0

pymysqlを使用して大きなcsvファイルをデータベースにロードしています。しかし、コードが完了した後、私はテーブルにデータのためにそれをサーバーに照会すると、空のセットを返します。ファイル内にデータをロードした後の空のセット

import pymysql 


conn = pymysql.connect(host = 'localhost', port = 3306, user = 'root', passwd = '', local_infile = True) 
cur = conn.cursor() 

cur.execute("CREATE SCHEMA IF NOT EXISTS `test`DEFAULT " 
      "CHARACTER SET utf8 COLLATE utf8_unicode_ci ;") 
cur.execute("CREATE TABLE IF NOT EXISTS " 
      "`test`.`scores` (`date` DATE NOT NULL, " 
      "`name` VARCHAR(15) NOT NULL," 
      "`score` DECIMAL(10,3) NOT NULL);") 
conn.commit() 

def push(fileName = '/home/pi/test.csv', tableName = '`test`.`scores`'): 
    push = """LOAD DATA LOCAL INFILE "%s" INTO TABLE %s 
      FIELDS TERMINATED BY ',' 
      LINES TERMINATED BY '\r\n' 
      IGNORE 1 LINES 
      (date, name, score);""" % (fileName, tableName) 
    cur.execute(push) 
    conn.commit() 
push() 

切り捨ての警告が表示されますが、他のエラーや警告は表示されません。どのようにこれを修正するための任意のアイデア?

答えて

0

私はこの問題を解決するためにいくつかのことを行いました。最初に、このエラーメッセージMySQL: Enable LOAD DATA LOCAL INFILEに続いて、負荷分散を許可するSQL Serverの設定ファイルを変更しました。そして、問題は、スクリプトが正常に動作して行

で行を挿入するよりもかなり高速であることの後に修正が

LINES TERMINATED BY '\n' 

に変更したライン、

LINES TERMINATED BY '\r\n' 

していました

関連する問題