pyspark:按内部值的长度筛选行

pyspark:按内部值的长度筛选行,pyspark,Pyspark,我有一个PySpark数据框架,其中有一列包含Python列表 id value 1 [1,2,3] 2 [1,2] 我想删除value列中列表中len小于3的所有行 所以我试着: df.filter(len(df.value)>=3) 事实上,这是行不通的 如何根据内部数据的长度筛选数据帧?请参阅此- size()-返回存储在列中的数组或映射的长度 from pyspark.sql.functions import size myValues = [(1,[1,2,3]),(2,[1,2])

我有一个PySpark数据框架,其中有一列包含Python列表

id value
1 [1,2,3]
2 [1,2]
我想删除
value
列中列表中
len
小于3的所有行

所以我试着:

df.filter(len(df.value)>=3)

事实上,这是行不通的

如何根据内部数据的长度筛选数据帧?

请参阅此-

size()
-返回存储在列中的数组或映射的长度

from pyspark.sql.functions import size
myValues = [(1,[1,2,3]),(2,[1,2])]
df = sqlContext.createDataFrame(myValues,['id','value'])
df.show()
+----+---------+
|  id|    value|
+--------------+
|   1|  [1,2,3]|
|   2|    [1,2]|
+----+---------+
df = df.filter(size(df.value) >= 3).show()
+----+---------+
|  id|    value|
+--------------+
|   1|  [1,2,3]|
+----+---------+