【发布时间】: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()
以下是我已经实施的优化
- 尝试在所有较小的表上实施广播。
- 进行列修剪。
我的工作目前在 20 分钟内完成。我正在寻找有关如何在考虑成本方面提高性能以在较少时间内完成工作的建议。
欢迎提出任何建议和问题。
【问题讨论】:
标签: postgresql apache-spark pyspark amazon-redshift aws-glue