pyspark - 将条件应用于列列表的数据框过滤
问题描述
如果列表中的任何字符串列为空,我想过滤 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.
解决方案
你可以使用reduce
fromfunctools
来模拟all
这样的
from functools import reduce
spark_df.where(reduce(lambda x, y: x & y, (F.col(x) != '' for x in col_list))).show()
推荐阅读
- php - 如何从文件中读取每 8 行并在 PHP 中创建嵌套数组?
- php - Laravel 过滤器(删除)请求中的 null 和空数组值
- spring-security - 如果未经授权,Spring Security Oauth2 重定向到登录页面
- javascript - css与地图创建的特定div不同的样式
- java - 如何让月份与正确输入的数字相匹配?
- postgresql - 如何检测一个点是否在Posgresql中的圆形或多边形区域内
- python - 如何在python中创建一个定时器继电器
- wordpress - Woocommerce order_review 购物车项目更新的自定义模板
- ethereum - 将 dapp 与钱包连接连接到信任钱包
- c++ - 十六进制到字符串有点技巧