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

Flu*_*uxy 9 excel scala apache-spark azure-databricks

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

这些是集群的参数:

然后我在 Scala 笔记本中执行了以下代码:

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

但我收到了有关 Java 堆大小的错误,然后收到另一个错误“java.io.IOException:超出了 GC 开销限制”。然后我再次执行这段代码,运行 5 分钟后又出现错误:

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

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

May*_*mje 6

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

  1. 通过免费的Azure 订阅14 天即用即付模式,您可以用更少的记录数处理 xlsx。就我的试用版而言,我必须将其更改为 25 条记录。

  2. 同时将工作线程类型降级为Standard_F4S 8GB 内存 4 核、0.5DBU、1 个工作线程配置。

  3. 添加了以下选项:

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