Как отбросить все столбцы, которые имеют одно значение, из кадра данных эффективно?
Я нашел два пути:
Этот метод игнорирует ноль и учитывает только другие значения, в моем случае мне нужно учитывать нули
# apply countDistinct on each column
col_counts = partsDF.agg(*(countDistinct(col(c)).alias(c) for c in partsDF.columns)).collect()[0].asDict()
этот метод занимает слишком много времени
col_counts = partsDF.agg(*( partsDF.select(c).distinct().count() for c in partsDF.columns)).collect()[0].asDict()
#select the cols with count=1 in an array
cols_to_drop = [col for col in partsDF.columns if col_counts[col] == 1 ]