给定具有以下行的 DataFrame:
rows = [
Row(col1='abc', col2=[8], col3=[18], col4=[16]),
Row(col2='def', col2=[18], col3=[18], col4=[]),
Row(col3='ghi', col2=[], col3=[], col4=[])]
我想为每个col2
,col3
和col4
(即第 3 行)删除带有空数组的行。
例如,我可能希望这段代码能够工作:
df.where(~df.col2.isEmpty(), ~df.col3.isEmpty(), ~df.col4.isEmpty()).collect()
我有两个问题
- 如何将 where 子句与
and
但更重要的是... - 如何判断数组是否为空。
那么,是否有一个内置函数来查询空数组?有没有一种优雅的方式将一个空数组强制为一个na
或null
值?
我试图避免使用 python 来解决它,无论是使用 UDF 还是.map()
.