RDD = [('B000002KXA', 'Music', 'Rescue Me', 1), ('6302049040', 'Movies & TV', 'Pennies from Heaven [VHS]', 2), ('B000002OKC', 'Music', 'Country Music Hall of Fame', 1), ('6304174616', 'Movies & TV', 'Star Blazers Series 1: The Quest for Iscandar (6pc) (Coll) [VHS]', 1), ('630265288X', 'Movies & TV', 'The Kathy Kaehler Fitness System [VHS]', 1), ('B000002H3Z', 'Music', 'London 0 Hull 4', 3), ('6304071841', 'Movies & TV', 'Romeo & Juliet [VHS]', 2), ('0790732475', 'Movies & TV', 'Batman & Robin [VHS]', 1), ('0471178411', 'Books', 'Microsoft Exchange 5 Sourcebook', 2), ('6300271765', 'Movies & TV', 'Sphinx [VHS]', 1)]
RDD结构是(id,类别,标题,计数)。
我需要根据每个类别获得总共5个计数。
我尝试使用.takeOrdered()函数。没有达到结果。
我知道转换成DataFrame并做一个排名很容易。但是,要求只是使用RDD。
2条答案
按热度按时间1sbrub3j1#
RDD中的takeOrdered(n,key)函数允许按特定列中的值排序,并在排序后返回n个行。
eqqqjvef2#
您可以按逆序排序并获得前五个元素。
会给你...