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

PyCharm 2022.1.1社区版中PySpark show()输出截断问题排查

故障定位结论

该问题和PySpark无关,是PyCharm 2022.1.x 社区版的控制台默认配置改动导致的。
2022.1版本更新后,控制台默认开启了长行截断规则:当单条输出行的字符长度超过默认阈值(约1000字符)时,会直接截断当前行剩余内容,同时终止后续所有输出的渲染——这和你观察到的现象完全匹配:列少的时候单行总长度低于阈值,10行结果可以完整展示;列多的时候单行长度超阈值,输出到第三行就被截断。

排查步骤
  • 脱离PyCharm运行同一段代码:可以直接在系统终端启动pyspark,或者将任务提交到Spark集群跑,执行df.show(10),如果宽表输出完整无截断,即可完全排除PySpark侧故障
  • 控制台复现测试:在PyCharm的Python交互控制台里打印一个长度超过1000的连续字符串(比如print('a'*1200)),如果输出被截断,即可确认是控制台长度限制规则导致的问题
修复方案
  1. 打开PyCharm设置,进入 File > Settings > Editor > General > Console 配置页
  2. 勾选Use soft wraps in console(控制台软换行),避免长行直接被截断
  3. 找到Truncate long lines in console output选项,取消勾选(2022.1版本该选项默认开启,是截断问题的直接诱因)
  4. 确认Limit console output by lines的数值不要设置过低(建议保持默认10240行以上即可)
  5. 关闭当前Python控制台,重新启动会话后执行show()即可恢复正常

如果临时不想改IDE配置,也可以在调用show()时手动指定参数适配:

# truncate设为False表示不截断列内容,也可以传入整数指定单字段最大显示长度
df.show(10, truncate=False)

注:该配置问题在PyCharm 2022.1.2后续小版本中已经调整了默认阈值,升级到更高版本的PyCharm也可以解决该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 05:54:38