【问题标题】:Azure Databricks: Error, Specified heap memory (4096MB) is above the maximum executor memory (3157MB) allowed for node type Standard_F4Azure Databricks:错误,指定的堆内存 (4096MB) 高于节点类型 Standard_F4 允许的最大执行程序内存 (3157MB)
【发布时间】:2022-12-15 20:47:20
【问题描述】:

我不断得到org.apache.spark.SparkException:作业中止当我尝试将 azure blob 中的扁平化 json 文件保存为 csv 时。我发现的一些答案建议增加执行程序内存。我在这里所做的:

当我尝试保存配置时出现此错误:

我需要做什么来解决这个问题?

编辑

添加导致的堆栈跟踪的一部分org.apache.spark.SparkException:作业中止.在保存我的 flattend 数据框时,我也尝试过使用和不使用合并:

ERROR FileFormatWriter: Aborting job 0d8c01f9-9ff3-4297-b677-401355dca6c4.
org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 79.0 failed 4 times, most recent failure: Lost task 0.3 in stage 79.0 (TID 236) (10.139.64.7 executor 15): ExecutorLostFailure (executor 15 exited caused by one of the running tasks) Reason: Command exited with code 52
Driver stacktrace:
    at org.apache.spark.scheduler.DAGScheduler.failJobAndIndependentStages(DAGScheduler.scala:3312)
    at org.apache.spark.scheduler.DAGScheduler.$anonfun$abortStage$2(DAGScheduler.scala:3244)
    at org.apache.spark.scheduler.DAGScheduler.$anonfun$abortStage$2$adapted(DAGScheduler.scala:3235)

【问题讨论】:

  • 该错误基本上是说您不能将执行程序内存大小设置为超过 3g,所以您可以将执行程序内存大小从 4g 更改为 3g或者您可以将工作节点类型升级为Standard_F8
  • 但为什么你需要调整内存?在大多数情况下,Databricks 会为您选择最佳设置
  • 我不确定,但如果重要的话,我正在使用Standard_F4

标签: pyspark azure-databricks


【解决方案1】:

在具有类似工作节点的集群上执行 spark.executor.memory 4g 命令时遇到类似错误。

错误的原因主要是特定集群节点中的执行程序内存限制为 3 Gb,而您按照错误消息提示将值作为 4 Gb 传递。

解析度:

  • spark.executor.memory 少于 3Gb。
  • 选择较大的工人类型Standard_F8Standard_F16等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 2023-03-20
    相关资源
    最近更新 更多