首页 > 解决方案 > 将条件应用于列列表的数据框过滤

问题描述

如果列表中的任何字符串列为空,我想过滤 pyspark 数据框。

df = df.where(all([col(x)!='' for x in col_list]))

ValueError: Cannot convert column into bool: please use '&' for 'and', '|' for 'or', '~' for 'not' when building DataFrame boolean expressions.

标签: pysparkdatabricks

解决方案


你可以使用reducefromfunctools来模拟all这样的

from functools import reduce

spark_df.where(reduce(lambda x, y: x & y,  (F.col(x) != '' for x in col_list))).show()

推荐阅读