使用数组对象计算 Spark RDD 中的不同文本

Posted

技术标签:

【中文标题】使用数组对象计算 Spark RDD 中的不同文本【英文标题】:Counting distinct texts in a Spark RDD with array objects 【发布时间】:2016-02-11 18:03:24 【问题描述】:

我有一个由文本数组组成的 spark rdd (words)。例如,

words.take(3)

会返回类似的东西。

[ ["A", "B"], ["B", "C"], ["C", "A", "D"] ]

现在,我想找出文本的总数以及唯一的文本数。如果RDD只有3条以上的记录,

total_words = 7
unique_words = 4 (only A, B,C,D)

现在为了得到总数,我做了类似的事情

text_count_rdd = words.map(lambda x: len(x))
text_count_rdd.sum()

但我不知道如何检索唯一计数。

【问题讨论】:

【参考方案1】:

只需flatMap,取distinctcount

words.flatMap(set).distinct().count()

【讨论】:

以上是关于使用数组对象计算 Spark RDD 中的不同文本的主要内容,如果未能解决你的问题,请参考以下文章

spark浅谈:RDD

RDD基础知识

Spark RDD API详解(转)

Spark RDD API(scala)

Spark快速大数据分析之RDD基础

Spark 创建 numpy 数组 RDD 的最快方法