Pyspark使用.filter()过滤掉空列表

gaa*_*aan 2 filter python-2.7 pyspark pyspark-sql

我有一个pyspark数据框,其中一列填充列表,包含条目或只是空列表.我想有效地过滤掉包含空列表的所有行.

filter 返回以下错误:

import pyspark.sql.functions as sf
df.filter(sf.col('column_with_lists') != []) 
Run Code Online (Sandbox Code Playgroud)

也许我可以检查列表的长度并强加它应该> 0(见这里).但是,如果我使用pyspark-sql并且filter甚至允许使用lambda ,我不确定这种语法是如何工作的.

也许要说清楚,我有多列,但想要在一个列上应用上面的过滤器,删除所有条目.链接的SO示例在单个列上进行过滤.

提前致谢!

gaa*_*aan 9

所以它看起来就像使用sf.size一样简单:

import pyspark.sql.functions as sf
df.filter(sf.size('column_with_lists') > 0)
Run Code Online (Sandbox Code Playgroud)