首页 > 解决方案 > 删除所有行中具有恒定值的列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 堆空间

有没有更快更好的方法来解决这个问题?

标签: pythonapache-sparkpyspark

解决方案


推荐阅读