目前,我在 Scala 中有一个 GLUE ETL 脚本。
以下是我的 GLUE 脚本设置:
- Spark 2.4、Scala 2(胶水版本 2.0)
- Worker 类型:G1.X(推荐用于内存密集型工作)
- 工人人数:10
我正在读取数据库中的 60 GB 数据,我正在像这样在数据框中读取这些数据
val largeDF = glueContext.getCatalogSource(database = "", tableName = "").getDynamicFrame().toDF()
val smallDF = glueContext.getCatalogSource(database = "", tableName = "").getDynamicFrame().toDF()
val result = largeDF.join(broadcast(smallDF) , smalldf("col") === largeDF("col"), "leftsemi")
result.show(false)
但是,这运行了 6 个小时,并失败并出现以下错误
Exception in task 0.0 in stage 3.0 (TID 77)
java.io.IOException: No space left on device
我需要增加工人数量吗?计算在 AWS Glue 中读取大数据的理想设置的最佳方法是什么?