如何使用Spark的API distinct()?

时间:2014-11-29 10:57:11

标签: api apache-spark

我检查了documentation中API distinct()的定义, 它说

  

返回包含源数据集的不同元素的新数据集。

但拆分源数据集的规则是什么?

假设我的数据集包含100行,而我的程序会逐行处理它,如果我使用distinct()来分割我的数据集,比如300个任务,结果会不同于拆分100个任务?

1 个答案:

答案 0 :(得分:1)

<强>鲜明()

您无法使用distinct()拆分数据集,只会删除重复项,因此您将获得相同数量或更少的元素。您可以设置numTasks来更改level of parallelism

  

如果在计算的任何阶段使用的并行任务数量不够高,则群集资源可能未得到充分利用。

实施例

数据集((1),(2),(2),(3))变为((1),(2),(3))。

拆分元素

要拆分元素,例如将文本文件中的一行拆分为单词,可以使用flatMap

  

与map类似,但每个输入项可以映射到0个或更多输出项(因此func应返回Seq而不是单个项)。

查看word count example