我有一个pyspark dataframe,其中一列填充了列表,要么包含条目,要么只包含空列表。我想高效地过滤掉所有包含空列表的行。
import pyspark.sql.functions as sf
df.filter(sf.col('column_with_lists') != []) 返回以下错误:
Py4JJavaError: An error occurred while calling o303.notEqual.
: java.lang.RuntimeException: Unsupported literal type class也许我可以检查列表的长度,并强制它应该大于0(参见here)。但是,如果我使用pyspark-sql,并且filter甚至允许lambda,我不确定这个语法是如何工作的。
也许为了清楚起见,我有多个列,但想要在单个列上应用上面的过滤器,删除所有条目。链接的SO示例对单个列进行筛选。
提前感谢!
发布于 2017-02-24 20:33:24
因此,它看起来和使用sql.functions中的size函数一样简单
import pyspark.sql.functions as sf
df.filter(sf.size('column_with_lists') > 0)https://stackoverflow.com/questions/42437992
复制相似问题