python - 删除所有行中具有恒定值的列pyspark数据框
问题描述
我想删除在整个数据框中具有相同值的列。我的数据框由大约 25K 列和 13K 行组成。
以下是我尝试过的代码:
col_counts = df.agg(*(countDistinct(col(c)).alias(c) for c in df.columns)).collect()[0].asDict()
cols_to_drop = [col for col in df.columns if col_counts[col] == 1 ]
df.drop(*cols_to_drop).show()
在执行代码时,我遇到了内存问题。以下是我收到的错误:
Py4JJavaError:调用 o276142.collectToPython 时出错。: java.lang.OutOfMemoryError: Java 堆空间
有没有更快更好的方法来解决这个问题?
解决方案
推荐阅读
- javascript - 两个动态呈现但共享相同路由的页面模板
- excel - 关闭表单时如何保存列表框值(多选)?
- c++ - 'strtoll' 和许多其他“不是 'std' 的成员”
- powershell - 无法将非单体脚本模块发布到具有 7 个或更多功能的本地 PowerShell 库
- vue.js - Nuxt.js - 尝试在 asyncData 方法中的失败等待调用中抛出 404 时出现“未定义错误”
- plsql - 如何找出 DBF 文件或任何文件的格式?
- javascript - Ember.js 模板内模式将变量传递给向下传递的操作(上下文组件)
- c++ - 如何使用 lambda,返回一个布尔值,作为参数
- css - 为响应式网格系统使用列数
- django - Django过滤通用关系(唯一约束异常)