我有一個2200萬行.csv文件(〜850mb),我正嘗試將其加載到Amazon RDS上的postgres數據庫中。它每次都會失敗(即使我將文件拆分爲更小的部分(100,000行中的每一行),甚至當我使用chunksize
時也會出現錯誤(出現超時錯誤)。pandas .to_sql使用RDS超時
所有我目前做的是加載該.csv的數據幀,然後將其寫入使用df.to_sql(table_name, engine, index=False, if_exists='append', chunksize=1000)
我使用create_engine從SQLAlchemy的創建連接數據庫:engine = create_engine('postgresql:database_info')
我有測試用psycopg2
寫入少量數據沒有問題,但寫入1000行大約需要50秒。顯然,22米行將無法正常工作。
還有什麼我可以嘗試嗎?
如果你只是想將csv文件導入到數據庫中,最好使用postgresql'COPY'命令,所以你不需要往返python對象(這會讓它變慢)。 – joris
此外,您使用的驅動程序是什麼? ('psycopg2'?)1000行的50s比我在postgres數據庫中遇到的要慢得多。所以也許這也是部分與數據庫的連接緩慢。 – joris
感謝您的評論,我試過使用psycopg2。我會更新這個問題。 – emh