我需要根据转换中的某些计算进行一些整数变量更新。例如,如果我在记录匹配中遇到一些差异,那么我想增加一个值并在那里使用它。
我已经探讨了累加器的使用,
但其值只能用于驱动程序
这对我来说非常乏味,因为我正在处理数十亿行。 请建议我在MapReduce框架中使用像COUNTERS这样的全局变量更新的可能解决方案。
答案 0 :(得分:0)
累加器是spark中计数器的最佳选择。但是由于转换中的计算被懒惰地评估,因此必须在行动中使用而不是转换。您可以在下面的链接中找到示例。
我遇到了同样的问题。使用累加器对于这个用例来说是一个很好的做法,它不会影响火花性能并且更安全。