AWS Glue ETL:读取巨大的JSON文件格式进行处理,但出现OutOfMemory错误



我正在开发AWS Glue ETL部分,用于读取巨大的json文件(仅测试1个文件,大约9 GB(以在ETL过程中工作,但在运行和处理了一段时间后,我从java.lang.OutOfMemoryError: Java heap space的AWS Glue中得到了一个错误

我的代码和流程就像一样简单

df = spark.read.option("multiline", "true").json(f"s3/raw_path") 
// ...
// and write to be as source_df to other object in s3 
df.write.json(f"s3/source_path", lineSep=",n")

在error/log中,自从读取这个巨大的文件后,它似乎失败并终止了容器。我已经尝试过用工作节点的样本数量将工作节点类型升级为G1.X,然而,我只想询问并找到另一种解决方案,它看起来不像是随着资源的增加而垂直扩展

我对这一领域和服务很陌生,所以我想尽可能低地优化成本和时间:-(

提前感谢大家

在研究了Glue和Spark之后,我发现为了在多个执行器之间获得并行处理的好处,就我的情况而言,我将(大(文件拆分为多个较小的文件,这很有效!这些文件被分发给多个执行者。

最新更新