Spark:rdd.countApprox() 与 rdd.count()

use*_*997 3 apache-spark spark-streaming

有人可以解释一下 RDD countApprox() 与 count()之间的区别吗?如果可能的话,可以回答哪个最快?我们有一个要求,其中count() 非常慢,需要大约 30 分钟 ** ...尝试过 countApprox() **第一次运行速度很快(**大约 1.2 分钟),然后减慢到30分钟.....

这就是我们如何使用它不确定它是否是最好的使用方式

rdd.countApprox(timeout=800, confidence=0.5)
Run Code Online (Sandbox Code Playgroud)

vmo*_*usu 5

  • Count() - 返回 RDD 中元素的数量。
  • CountApprox - count() 的近似版本,即使并非所有任务都已完成,它也会在超时内返回可能不完整的结果。

countApprox(timeout: Long, confidence: Double)

默认值:置信度 = 0.95

注意:根据 spark 源代码,对 countApprox 的支持标记为“实验性”。

使用 timeout=800,您应该已经看到 <1 分钟内的近似计数。

您确定没有其他原因导致 30 分钟的延迟。分享您的代码/代码片段以从其他成员那里获得更准确的输入。

  • 仅供参考:超时以毫秒为单位 (4认同)
  • 如何应用超时和置信度?显然,1ms 和 1.0 (100%) 置信度是它无法保证的。一个参数优先吗?是等到满足置信度,还是达到超时? (3认同)