Код: Выделить всё
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