Проверьте, содержит ли логический столбец только истинные значения.Python

Программы на Python
Anonymous
Проверьте, содержит ли логический столбец только истинные значения.

Сообщение Anonymous »

Работая в Databricks, я получил фрейм данных, который выглядит следующим образом:

Код: Выделить всё

columns = ["a", "b", "c"]
data = [(True, True, True), (True, True, True), (True, False, True)]
df = spark.createDataFrame(data).toDF(*columns)
df.display()
Изображение

Я хотел бы выбрать только те столбцы кадра данных, в которых не все значения являются истинными.

В pandas я бы использовал df['a'].all() для проверьте, верны ли все значения столбца «а». К сожалению, я не нашел эквивалента в PySpark.
Я нашел решение проблемы, но оно кажется слишком сложным:

Код: Выделить всё

df.select(*[column for column in df.columns
if df.select(column).distinct().collect() !=
spark.createDataFrame([True], 'boolean').toDF(column).collect()])
Решение возвращает то, что я хочу:
[img]https://i.sstatic. net/QRlPN.png[/img]

Есть ли более простой способ сделать это в PySpark?

Подробнее здесь: https://stackoverflow.com/questions/758 ... rue-values

Вернуться в «Python»