在Databricks工作时,我得到了一个数据帧,如下所示:
columns = ["a", "b", "c"]
data = [(True, True, True), (True, True, True), (True, False, True)]
df = spark.createDataFrame(data).toDF(*columns)
df.display()
我只想 Select 数据帧中并非所有值都为True的那些列.
在Pandas 中,我会用df['a'].all()
来判断"a"列的所有值是否都为True.不幸的是,我在Py Spark中找不到类似的东西.
我找到了一个解决问题的办法,但似乎太复杂了:
df.select(*[column for column in df.columns
if df.select(column).distinct().collect() !=
spark.createDataFrame([True], 'boolean').toDF(column).collect()])
该解决方案返回我想要的内容:
有没有一种更简单的方法来做这件事呢?