pyspark: фильтрация строк по длине внутренних значений - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть фрейм данных PySpark со столбцом, содержащим список Python

id value
1 [1,2,3]
2 [1,2]

Я хочу удалить все строки с len списка в столбце value меньше 3.

Итак, я попытался:

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

, и действительно, он не работает.

Как я могу отфильтровать кадр данных по длине внутренних данных?

1 Ответ

0 голосов
/ 15 декабря 2018

Ссылка на эту ссылку -

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]|
+----+---------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...