pyspark列表,找到最多出现的项目

时间:2016-04-22 18:36:29

标签: list pyspark frequency

我需要找到在pyspark列表中出现最多的项目。 假设我有一个列表:

mylist = [a, b, c, s, c, c, s, a, c]

我需要知道c是频率最高的那个。

我搜索了一些类似的答案,我试过

from collections import Counter

但无法导入名称计数器。这与pyspark有关吗?

1 个答案:

答案 0 :(得分:1)

这个列表是否足够小(大约<100k元素),您可以在基础Python中执行此操作吗?如果是这样,那么你甚至不需要Spark。

from collections import Counter
mylist = ['a', 'b', 'c', 's', 'c', 'c', 's', 'a', 'c']
counter = Counter(mylist)
print(counter.most_common()[:5]) # get the five most common elements 

如果你有一个相当大的元素文件要计算,那么你可能想要使用Spark。在这种情况下,您甚至不需要collections。查看Spark examples page以获取一些示例代码。

至于为什么你无法导入Counter,我不确定,特别是因为collections是默认提供的包。尝试打开常规Python shell并运行import collectionscollections.Counter。我运行了你给的完全相同的导入线,它对我有用。