gpt4 book ai didi

scala - 如何使用累加器对leftOuterJoin中没有匹配项的记录进行计数?

转载 作者:行者123 更新时间:2023-12-02 00:42:59 24 4
gpt4 key购买 nike

Spark accumulators是一种获取有关RDD上操作的有用信息的好方法。

我的问题如下:我想在两个数据集之间执行联接,例如eventsitems(其中事件是唯一的并涉及项,并且两者都由item_id为主的items键入)

这是可行的:

val joinedRDD = events.leftOuterJoin(items)

知道多少个事件没有匹配项的一种可能方法是:
val numMissingItems = joinedRDD.map(x => if (x._2._2.isDefined) 0 else 1).sum

我的问题是:有没有办法通过累加器获得此计数?我不想只是为了计算而通过RDD。

最佳答案

实际上,您可以使用cogroup签名,然后自行执行leftOuterJoin执行的逻辑,在不匹配的情况下增加累加器。但是,需要注意的重要一点是,由于这是一个转换,因此累加器有可能(例如,通常不会增加很多)对记录的数量进行过多计数(例如,如果任务失败/重新计算)。如果可以接受,则取决于您。

关于scala - 如何使用累加器对leftOuterJoin中没有匹配项的记录进行计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32125015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com