我想删除整个数据框中具有相同值的列。我的数据框由大约25,000列和13,000行组成。
下面是我尝试过的代码:
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堆空间
有没有更快更好的方法来解决这个问题?