无法将大型数据帧保存到MySQL中

时间:2018-02-17 00:26:36

标签: mysql pandas mariadb

我有Panda数据帧,其中包含[1127618行x 64列],并尝试使用下面的给定命令保存到mysql中。

engine = create_engine('mysql+mysqlconnector://user:password@127.0.0.1/joohun_test', echo=False)
df.to_sql(name='tst_dr3_201801', con=engine, if_exists = 'replace', index=False 

当它执行这个命令时,它需要永远,似乎永远不会完成任务所以如果我将数据帧减少到[10000行×64列],它最终可以保存到Mysql数据库中。但是我在MySQL中保存的最终数据形式遇到了不同的问题。当您看到列“smaster_uuttype”和“user”时,字符之间会添加空格。

MariaDB [joohun_test]> select serialno, uuttype, smaster_uuttype,failingtestname,cpptimeid, user, year, month from tst_dr3_sample limit 10;
+-------------+--------------------+--------------------------------------+-----------------+-----------+------------------+------+-------+
| serialno    | uuttype            | smaster_uuttype                      | failingtestname | cpptimeid | user             | year | month |
+-------------+--------------------+--------------------------------------+-----------------+-----------+------------------+------+-------+
| ABCDEFGH | ABCD-ABC-2500ABCD= | D E F G - H I J - 2 5 0 0 A B C D =  |                 | NULL      | d u n g l e      | 2018 |     1 |
然而,看着同一排熊猫数据帧,角色之间没有空格。

    serialno    uuttype  smaster_uuttype    failingtestname cpptimeid   user    year    month
0   ABCDEFGH    ABCD-ABC-2500ABCD=  DEFG-HIJ-2500ABCD=      None    dungle  2018    1

我想知道两件事。

  1. 我想知道是否有办法将数据保存到mysql中,字符串保存在熊猫中,字符之间没有空格。
  2. 有没有办法将大尺寸数据帧保存到mysql而不是将数据帧转换为小帧?

1 个答案:

答案 0 :(得分:0)

使用df.to_sql()可能会出现问题。你应该使用本地方式来做它。以下是示例https://dev.mysql.com/doc/connector-python/en/connector-python-example-cursor-transaction.html