相关问题:如何通过熊猫或火花数据框删除所有行中具有相同值的列?
所以我有一个 pyspark 数据框,我想删除所有行中所有值都相同的列,同时保持其他列不变。
然而,上述问题的答案仅适用于熊猫。pyspark 数据框有解决方案吗?
谢谢
您可以countDistinct()在每列上应用聚合函数以获取每列不同值的计数。count=1 的列意味着它在所有行中只有 1 个值。
# apply countDistinct on each column
col_counts = df.agg(*(countDistinct(col(c)).alias(c) for c in df.columns)).collect()[0].asDict()
# select the cols with count=1 in an array
cols_to_drop = [col for col in df.columns if col_counts[col] == 1 ]
# drop the selected column
df.drop(*cols_to_drop).show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1541 次 |
| 最近记录: |