代码之家  ›  专栏  ›  技术社区  ›  JY078

pyspark列表,查找出现最多的项

  •  0
  • JY078  · 技术社区  · 10 年前

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

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

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

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

    from collections import Counter
    

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

    1 回复  |  直到 10 年前
        1
  •  2
  •   Galen Long    10 年前

    这个列表是否足够小(大约为<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 ,我不确定,尤其是因为 收藏 是默认提供的包。尝试打开常规Python shell并运行 import collections , collections.Counter 。我使用了与你提供的完全相同的进口线,这对我很管用。

    推荐文章