Я пытаюсь взять пример количества слов Spark и агрегировать количество слов по какому-либо другому значению (например, слова и количество слов по человеку, где человек "VI" или "MO" в приведенном ниже случае)
У меня есть rdd, который представляет собой список кортежей, значения которых являются списками кортежей:
from operator import add
reduced_tokens = tokenized.reduceByKey(add)
reduced_tokens.take(2)
Что дает мне:
[(u'VI', [(u'word1', 1), (u'word2', 1), (u'word3', 1)]),
(u'MO',
[(u'word4', 1),
(u'word4', 1),
(u'word5', 1),
(u'word8', 1),
(u'word10', 1),
(u'word1', 1),
(u'word4', 1),
(u'word6', 1),
(u'word9', 1),
...
)]
Я хочу что-то вроде:
[
('VI',
[(u'word1', 1), (u'word2', 1), (u'word3', 1)],
('MO',
[(u'word4', 58), (u'word8', 2), (u'word9', 23) ...)
]
Подобно примеру подсчета слов здесь, Я хотел бы иметь возможность отфильтровывать слова с количеством ниже некоторого порога для какого-либо человека. Спасибо!