【问题标题】:Optimizing spark AWS GLUE jobs优化 Spark AWS GLUE 作业
【发布时间】:2020-12-18 21:04:26
【问题描述】:

我正在使用 pyspark AWS GLUE 从 Aurora postgres 读取 8 个表,经过转换并加入写入一个大小约为 2-5 GB 的红移表,读取表大小如下

92GB、20GB、68MB、50MB、8MB、7MB、6MB、1.5MB、88kb、56kb,

No: 1-3 之间的标准工作节点 10 并发数(如果有帮助的话)

在从 postgress 获取时读取 2 个应用过滤的大表。尝试将 kryoSerializer 应用于胶水作业(这有帮助吗?)如果是,我们如何申请和验证?

billing_fee_df= glueContext.read.format("jdbc")\
    .option("driver", "org.postgresql.Driver")\
    .option("url", "jdbc:postgresql://prod-re.cbn6.us-west-2.rds.amazonaws.com:5432/db")\
    .option("dbtable", "("sql query with specific column selection" from first_largest_table cc LEFT JOIN second_largest_table cf ON cc.id = cf.id LEFT JOIN thirdTable con ON cf.id=con.id where cc.maturity_date > ((current_date-45)::timestamp without time zone at time zone 'UTC')) as bs")\
    .option("user", "postgres")\
    .option("password", "pass")\
    .option("numPartitions", "100")\
    .option("partitionColumn", "date_col")\
    .option("lowerBound", "2020-07-30 00:00:00.000")\
    .option("upperBound", "2020-12-11 00:00:00.000").load()  

以下是我已经实施的优化

  1. 尝试在所有较小的表上实施广播。
  2. 进行列修剪。

我的工作目前在 20 分钟内完成。我正在寻找有关如何在考虑成本方面提高性能以在较少时间内完成工作的建议。

欢迎提出任何建议和问题。

【问题讨论】:

    标签: postgresql apache-spark pyspark amazon-redshift aws-glue


    【解决方案1】:

    您可能需要退后一步,了解您的工作大部分时间都花在了哪些地方。从 postgres 的初始读取是限制因素吗?连接和计算后记?写入红移?火花历史服务器是开始获取此信息的最佳去处。单击 sql 选项卡并查看执行图以及每个阶段完成的时间。另外,当您在这里时,请查看是否有任何偏差。还可以单击详细信息部分并获取查询计划并将其粘贴到上面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-09
      • 2020-02-18
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 2018-08-05
      相关资源
      最近更新 更多