Amazon web services 查找将AWS glue与S3一起使用时内存错误的原因

Amazon web services 查找将AWS glue与S3一起使用时内存错误的原因,amazon-web-services,apache-spark,amazon-s3,aws-lambda,aws-glue,Amazon Web Services,Apache Spark,Amazon S3,Aws Lambda,Aws Glue,我使用AWS Lambda和AWS Glue联合解压存储在S3中的高达150GB的大型文件。该作业在1-2GB的小文件上运行良好,但较大文件因内存错误而失败。我在相关的Cloudwatch日志中找不到关于内存错误的任何信息,而且Glue中内置的度量部分中也没有显示任何信息。我如何确定我的问题来自何处,以及我能做些什么来解决它? 多谢各位 另外,我的胶水作业使用的是运行在Python3上的spark,您需要了解spark实际在做什么,以及作业在哪个阶段失败。在spark中有两种不同类型的操作符。其

我使用AWS Lambda和AWS Glue联合解压存储在S3中的高达150GB的大型文件。该作业在1-2GB的小文件上运行良好,但较大文件因内存错误而失败。我在相关的Cloudwatch日志中找不到关于内存错误的任何信息,而且Glue中内置的度量部分中也没有显示任何信息。我如何确定我的问题来自何处,以及我能做些什么来解决它? 多谢各位


另外,我的胶水作业使用的是运行在Python3上的spark,您需要了解spark实际在做什么,以及作业在哪个阶段失败。在spark中有两种不同类型的操作符。其中,需要将所有记录放入内存,以及可以流式传输的记录,以便内存中只有一条记录稍微简化。很可能不是读取CSV导致了失败,而是读取后的下一步。spark history server将在sql选项卡中为您提供更多信息,以便使用dataframe.explain手动打印查询计划

我怀疑您可以通过在执行任何其他操作之前添加一个手动dataframe.repartition400来绕过这一步


此外,IMO还指出,创建这么大的CSV是一种不好的做法。可以使用大小合理的CSV集,也可以使用允许多个并行读卡器(如parquet)的格式。

您使用的压缩编解码器是什么?