У меня есть фрейм данных Panda, который содержит итоговые [1127618 строк x 64 столбца] и попытался сохранить в mysql заданную команду ниже.
engine = create_engine('mysql+mysqlconnector://user:[email protected]/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 |
однако, глядя на ту же строку блока данных panda, между символами нет пробела.
serialno uuttype smaster_uuttype failingtestname cpptimeid user year month
0 ABCDEFGH ABCD-ABC-2500ABCD= DEFG-HIJ-2500ABCD= None dungle 2018 1
есть две вещи, которые я хотел бы знать.
Использование df.to_sql() может иметь проблемы. Вы должны использовать собственный способ сделать это. Вот пример https://dev.mysql.com/doc/connector-python/en/connector-python-example-cursor-transaction.html