pyspark - 优化 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 个核心
请帮助优化上述代码,以减少执行的处理时间。 提前致谢!!
解决方案
推荐阅读
- python - Python:干净的代码和 For 循环的性能
- iis - 使用 IIS 作为应用程序和 Internet 代理服务器之间的转发代理
- c# - C#:如何停止循环遍历 csv 文件中的数据并存储上次读取的值
- java - 将子类的实例传递给方法并稍后在该方法中使用它
- rest - 带有可选 Base64 编码的 REST API 标头
- php - PHP 不同的主目录
- php - 生成错误的 url,wordpress 主题
- sql - sql server中用于更新日常工作状态的视图的查询优化
- angular - 如何在角度 6 的编辑页面上以反应形式创建动态下拉字段
- python-3.x - 比特币 RPC 连接