首先我要说的是,这篇文章与本网站上的许多文章有关,我只是简单地将其发布给后人并帮助添加证据,说明为什么会出现这种特殊错误。
所以我运行了一个脚本,它将数据从sql中提取到数据帧,然后执行一些操作并将输出写回sql server。当我使用pandas executemany()
命令将sqlalchemy
添加到我的to_sql
脚本以写入服务器时,我首先开始遇到随机的“Kernel Died”错误。我无法想象我的生活。
稍微继续下去,我开始将大量信息写回服务器而不使用executemany()
,并且在写入服务器时收到了我有重复主键的错误。我在历史上已经知道,在从pandas转换为h2o帧时存在一个已知问题,即h2o帧有时会在帧中创建重复记录。当这转换回pandas时,你仍然会有重复,当你把它写回服务器时,你仍然会有重复。写回我的服务器的其中一个值是主键,因此不能有重复的条目并导致错误。
所有这一切都在说。当我关闭executemany()
时,我得到主键中存在重复并且操作停止的错误。当我打开executemany()
时,我收到“内核已死”的错误。
所以有了这个证据,我建议内核有Died错误是另一个包/实体中的一些错误,它没有被转换回内核并导致内核死亡错误。
问题是:我们在这两个问题上的哪个方面?我见过的帖子大约是11个月
此外,如果这里不允许发布这篇文章,我可以在哪里发布这样的信息,以帮助开发人员理解常见问题?
编辑:继续......
刚用同一个脚本在jupyter中运行测试。我使用executemany()收到了重复主键的相应错误。需要明确的是:在Spyder中,我会收到“Kernel Died”。
但是我也收到了这个错误。
C:\Anaconda3\lib\site-packages\sqlalchemy\engine\base.py in
_execute_context(self, dialect, constructor, statement, parameters, *args)
1169 parameters,
-> 1170 context)
1171 elif not parameters and context.no_parameters:
C:\Anaconda3\lib\site-packages\sqlalchemy\engine\default.py in
do_executemany(self, cursor, statement, parameters, context)
503 def do_executemany(self, cursor, statement, parameters,
context=None):
--> 504 cursor.executemany(statement, parameters)
505
我刚刚发现了一个新手解决方案。将所有项目文件复制到新目录,将Spyder设置为出厂默认值,并在新目录中创建新项目!死核心复活!