笔记本输出的作业群集限制

问题

你正在作业群集上运行笔记本,收到一条错误消息指示输出过大。

The output of the notebook is too large. Cause: rpc response (of 20975548 bytes) exceeds limit of 20971520 bytes

原因

只要笔记本输出大小超过 20 MB,作业群集中就会出现此错误消息。

  • 如果在笔记本中使用多个 display()displayHTML()show() 命令,这会增加输出量。 输出超过 20 MB 后,将发生错误。
  • 如果在笔记本中使用多个 print() 命令,这会增加到 stdout 的输出。 输出超过 20 MB 后,将发生错误。
  • 如果正在运行流式处理作业,并且在群集的 Spark 配置中启用 ,它会尝试在单个请求中 awaitAnyTermination 提取整个输出。 awaitAnyTermination 如果超过 20 MB,则会发生错误。

解决方案

  • 删除笔记本中任何不必要的 display()displayHTML()print()show() 命令。 这些命令对于调试很有用,但不建议用于生产作业。
  • 如果作业输出超过 20 MB 的限制,请尝试在群集的 Spark 配置 中设置 来将日志重定向到 或 log4jstdoutspark.databricks.driver.disableScalaOutput truelog4j

有关详细信息,请查看有关输出大小限制的文档。