首页 > 解决方案 > 优化 pyspark 处理时间

问题描述

我正在使用 pyspark 查找为主键候选设置的列。代码在小数据集上运行良好。但是对于 700 万条记录和 88 列的数据集,它需要花费几个小时才能执行。我需要一些帮助来优化 pyspark 中的以下代码。

from itertools import combinations, chain
full_list = chain.from_iterable(combinations(target_df, i) for i in range(1, len(target_df.columns)+1))
n = target_df.count()
res = []
for cols in full_list:
    cols = list(cols)
    if target_df.select(cols).drop_duplicates().count() == n:
      res.append(cols)
      break
print(res)

在以下集群配置上运行: 平台 - 数据块,工作器数量 - 5(可扩展),内存 - 每个 32 GB 和 8 个核心,驱动程序内存 - 32 GB 和 8 个核心

请帮助优化上述代码,以减少执行的处理时间。 提前致谢!!

标签: pyspark

解决方案


推荐阅读