我目前正在优化一个 PySpark 作业,该作业涉及跨大型数据集的一些聚合。我对处理大规模数据还很陌生,并且遇到了磁盘使用和工作效率方面的问题。详情如下:
选择的集群:
• Worker Nodes: 6
• Cores per Worker: 48
• Memory per Worker: 384 GB
数据:
• Table A: 158 GB
• Table B: 300 GB
• Table C: 32 MB
流程:
1. Read dfs from delta tables
2. Perform a broadcast join between Table B and the small Table C.
3. The resulting DataFrame is then joined with Table A, on three different column id, family, part_id
4. The final job includes upsert operations into the destination.
5. The destination table is partitioned by id, family, *date*
我唯一想到的是使用更多磁盘优化实例更新集群,我的问题是如何解释存储选项卡并找到一种方法来理解优化这项作业。
IMO,需要进一步的详细信息,例如 B 和 C 的连接列!!!