火花驱动程序意外停止并正在重新启动。您的笔记本将自动重新连接

The spark driver has stopped unexpectedly and is restarting. Your notebook will be automatically reattached

我尝试在 Databricks 中分析一个 500Mb 的数据集。这些数据存储在 Excel 文件中。我做的第一件事是从 Maven(最新版本 - 0.11.1)安装 Spark Excel 包 com.crealytics.spark.excel

这些是集群的参数:

然后我在 Scala notebook 中执行了以下代码:

val df_spc = spark.read
          .format("com.crealytics.spark.excel")
          .option("useHeader", "true")
          .load("dbfs:/FileStore/tables/test.xlsx")

但是我得到关于 Java 堆大小的错误,然后我得到另一个错误 "java.io.IOException: GC overhead limit exceeded"。然后我再次执行这段代码并在 5 分钟后得到另一个错误 运行:

The spark driver has stopped unexpectedly and is restarting. Your notebook will be automatically reattached.

我不明白为什么会这样。事实上,对于分布式计算来说,数据集非常小,集群大小应该可以处理这些数据。我应该检查什么来解决它?

我也遇到了同样的情况,我无法处理我的 35000 条记录 xlsx 文件。 以下是我尝试解决的解决方案:

  1. 使用免费的 azure 订阅14 天随用随付 模式,您可以用更少的资源处理 xlsx records.In 我的试用版案例数量,我必须将其更改为 25 条记录。

  2. 同时将 worker 类型降级为 Standard_F4S 8GB 内存 4core,0.5DBU,1 worker 配置。

  3. 添加了以下选项:

    sqlContext.read.format("com.crealytics.spark.excel")。 选项(“位置”,“文件名在这里...”)。选项(“useHeader”,“真”)。选项(“treatEmptyValueAsNulls”,“真”)。选项(“maxRowsInMemory”,20)。选项(“inferSchema ","true").load("文件名在这里...")

我遇到了同样的问题。我们联系了 DataBricks,后者为我们提供了这个答案 “过去,我们能够通过简单地重启已经运行了很长时间的集群来解决这个问题。 出现此问题的原因是 JVM 重复使用内存位置太多次并开始出现异常行为。"