gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 00:42:59 26 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/

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