我尝试分析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")
但是我收到有关Java堆大小的错误,然后又收到另一个错误“ java.io.IOException:超出了GC开销限制”。然后我再次执行此代码,运行5分钟后又遇到另一个错误:
火花驱动器意外停止并正在重新启动。您的 笔记本将自动重新连接。
我不明白为什么会这样。实际上,对于分布式计算而言,数据集非常小,并且群集大小应该可以处理这些数据。我应该检查些什么来解决它?
答案 0 :(得分:0)
我也陷入了无法处理35000条记录xlsx文件的情况。 下面是我尝试解决的解决方案:
使用免费的 azure订阅和 14天随用随付模式,您可以处理较少记录数的xlsx。 ,我必须将其更改为25条记录。
还将工作程序类型降级为 Standard_F4S 8GB内存4核,0.5DBU,1个工作程序。
添加了以下选项:
sqlContext.read.format(“ com.crealytics.spark.excel”)。 option(“位置”,“此处的文件名...”)。option(“ useHeader”,“ true”)。option(“ treatEmptyValueAsNulls”,“ true”)。option(“ maxRowsInMemory”,20).option(“ inferSchema “,” true“)。load(”此处的文件名...“)