我检查了documentation中API distinct()
的定义,
它说
返回包含源数据集的不同元素的新数据集。
但拆分源数据集的规则是什么?
假设我的数据集包含100行,而我的程序会逐行处理它,如果我使用distinct()来分割我的数据集,比如300个任务,结果会不同于拆分100个任务?
答案 0 :(得分:1)
<强>鲜明()强>
您无法使用distinct()
拆分数据集,只会删除重复项,因此您将获得相同数量或更少的元素。您可以设置numTasks
来更改level of parallelism。
如果在计算的任何阶段使用的并行任务数量不够高,则群集资源可能未得到充分利用。
实施例
数据集((1),(2),(2),(3))变为((1),(2),(3))。
拆分元素
要拆分元素,例如将文本文件中的一行拆分为单词,可以使用flatMap
。
与map类似,但每个输入项可以映射到0个或更多输出项(因此func应返回Seq而不是单个项)。