Synapse笔记本运行display(df.limit(10))偶发无法显示数据问询
排查及修复方案
该偶发问题属于Azure Synapse Notebook的已知前端渲染异常场景,已有大量用户在长期运行Spark会话时遇到同款问题,可按以下优先级排查:
- 先确认Spark侧数据链路是否正常:在display无输出时运行
df.limit(10).count(),如果可以正常返回行数,说明问题出在前端渲染链路而非DataFrame本身或Spark服务故障。 - 排查Spark驱动内存溢出问题:运行
spark.sparkContext.getConf().get("spark.driver.memory")获取当前驱动内存配置,再运行sum([rdd.memSize for rdd in spark.sparkContext.statusTracker().getRDDInfo()])统计当前会话缓存占用总大小,如果缓存占用超过驱动内存的70%,后台GC会自动清理部分DataFrame元数据,导致display渲染时拉不到对应的分片数据,无报错但无输出。这种情况可以手动执行spark.catalog.clearCache()清理无用缓存,或调整Spark池配置增大驱动内存。 - 排查前端渲染缓存占满问题:如果当前笔记本累计运行过大量带输出的单元格(多次输出表格、图表等内容),前端为单个会话分配的渲染缓存会被占满,新的display输出会被静默丢弃。可以清除所有单元格的历史输出后重试,或重启当前笔记本会话验证。
- 临时规避方案:可以改用
print(df.limit(10).toPandas())输出内容,该方式走纯文本输出链路,不受前端渲染缓存限制。
内容的提问来源于stack exchange,提问作者wilson_smyth
相关产品推荐
相关产品推荐

