问题描述
我正在研究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")
在错误/日志中似乎自读取此大文件以来,容器失败并终止。我已经尝试将具有示例工作节点数量的工作类型升级为G1.X
,但是,我只是想问一问,并找到另一种解决方案,该解决方案看起来并不像垂直扩展那样会增加资源
在这个领域和服务领域我很新,所以想尽可能地降低成本和时间:-)
先谢谢大家
解决方法
在研究了Glue和Spark之后,我发现要在多个执行程序之间获得并行处理的好处,就我的情况而言-我将(大)文件拆分为多个小文件,并且可以正常工作!这些文件已分发给多个执行者。