【发布时间】:2019-03-02 12:31:12
【问题描述】:
首先让我说这篇文章与本网站上的许多人有关,我只是为了后代而发布此文章并帮助添加证据来说明为什么会发生此特定错误。
所以我运行了一个脚本,它从 sql 将数据拉入数据帧,然后它执行一些操作并将输出写回 sql 服务器。当我将executemany() 添加到我的sqlalchemy 脚本以使用pandas to_sql 命令写入服务器时,我第一次开始遇到随机的“内核死亡”错误。我这辈子都想不通。
继续往下走,我开始在不使用executemany() 的情况下将大量信息写回服务器,并且在写入服务器时收到错误主键重复。我从历史上知道,在从 pandas 转换为 h2o 框架时存在一个已知问题,即 h2o 框架有时会在框架中创建重复记录。当它转换回 pandas 时,您仍然会拥有副本,而当您将其写回服务器时,您仍然会拥有副本。写回我的服务器的值之一是主键,因此不能有重复的条目并导致错误。
说了这么多。当我关闭executemany() 时,我收到主键中存在重复的错误并且操作停止。当我打开executemany() 时,我收到“内核已死亡”的错误。
因此,有了这个证据,我提出内核已死亡错误是另一个包/实体中的一些错误,它没有被翻译回内核并导致内核已死亡错误。
问题是:我们在这两个问题上处于什么位置?我看到的帖子大约 11 个月大
另外,如果这里不允许发布此帖子,我可以在哪里发布此类信息以帮助开发人员了解常见问题?
编辑:继续...
刚刚在 jupyter 中使用相同的脚本进行了测试。我收到了使用 executemany() 重复主键的相应错误。只是要明确一点:在 spyder 中,我会收到“内核死亡”。
但是我也收到了这个错误。
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 维护者)您的代码在 Jupyter 笔记本中是否正常工作或产生相同的错误?
-
不确定。我还没有尝试过 jupyter notebook,但我会试一试并回复你。这可能需要一些时间,因为我目前正在运行一个多天的脚本。
-
刚刚在 jupyter 中使用相同的脚本进行了测试。我收到了使用 executemany() 重复主键的相应错误。明确一点:在 spyder 中我会收到“内核死亡”
-
你在 Jupyter 中是否也收到了
executemany()的“内核死亡”消息? -
没有。只是上面的错误。
标签: sql-server pandas sqlalchemy spyder h2o