【问题标题】:Glue Dynamic Frame is way slower than regular SparkGlue Dynamic Frame 比普通 Spark 慢很多
【发布时间】:2023-02-15 12:31:18
【问题描述】:

在下图中,就写入 S3 的方式而言,我们使用三种不同的配置运行相同的粘合作业:

  1. 我们使用动态帧写入 S3
  2. 我们使用纯火花帧写入S3
  3. 与 1 相同,但将工作节点数从 80 减少到 60
    • 在所有条件相同的情况下,动态框架需要 75 分钟才能完成这项工作,而常规 Spark 需要 10 分钟。输出是 100 GB 的数据。
    • 动态框架对工作节点的数量超级敏感,当稍微减少工作节点的数量时,在处理 2 小时后由于内存问题而失败。这是令人惊讶的,因为我们期望作为 AWS 服务的 Glue 能够更好地处理 S3 写入操作。

    代码差异是这样的:

    if dynamic:
        df_final_dyn = DynamicFrame.fromDF(df_final, glueContext, "df_final")
    
        glueContext.write_dynamic_frame.from_options(
        frame=df_final_dyn, connection_type="s3", format="glueparquet", transformation_ctx="DataSink0",
        connection_options={"path": "s3://...", 
        "partitionKeys": ["year", "month", "day"]})
    else:
        spark.conf.set("spark.sql.sources.partitionOverwriteMode", "dynamic")
        df_final.write.mode("overwrite").format("parquet").partitionBy("year", "month", "day")\
                 .save("s3://.../")
    

    为什么效率如此低下?

【问题讨论】:

  • 你找到答案了吗?

标签: amazon-web-services apache-spark amazon-s3 aws-glue aws-glue-spark


【解决方案1】:

我阅读了这篇讨论用途、优缺点的文章。希望能帮助到你!

Article -> :)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-13
  • 2014-02-20
相关资源
最近更新 更多