You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EMR 7.3.0集群Jupyter PySpark执行df.count()报KeyError求助

EMR 7.3.0 Jupyter PySpark执行df.count()出现KeyError: 11718的解决办法

问题本质

这个错误和你的代码、Spark内核逻辑无关,是EMR自带的Jupyter Spark监控插件(awseditorssparkmonitoringwidget)的线程安全bug导致的。插件的cell_monitor线程在异步追踪Spark任务时,尝试访问一个不存在的Stage ID(这里是11718),从而抛出KeyError——你之前的show()等操作能正常执行,也验证了DataFrame本身没有问题。

解决办法

临时快速修复:重启Jupyter内核

重启内核会重置监控插件的状态,暂时绕过这个问题:

  • 在Jupyter界面点击「Kernel」→「Restart」
  • 重启后重新运行代码(记得重新执行df.cache())

彻底解决:禁用Spark监控插件

如果不需要Jupyter里的Spark监控组件,可以直接禁用该插件:

  1. 打开Jupyter右上角「Settings」→「Advanced Settings Editor」
  2. 切换到「Notebook」选项卡
  3. 在「User Preferences」中添加如下配置并保存:
    {"awseditorssparkmonitoringwidget": {"enabled": false}}
    
  4. 刷新页面后,插件会停止运行,不会再触发此类线程错误

长期方案:升级EMR版本

AWS后续发布的EMR版本(如7.4.0及以上)大概率修复了这个插件的逻辑漏洞,若集群允许升级,可以切换到最新稳定版EMR。

验证方法

执行上述操作后,重新运行df.count(),如果能正常返回计数,且无报错,说明问题已解决。同时可以再次执行df.orderBy('someRow').show(20, False)确认DataFrame操作依然正常。

内容的提问来源于stack exchange,提问作者mwarrior

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 19:54:50