在 spark 中,是否有一种快速方法可以获取 Dataset 中元素数量的近似计数?也就是说,比 Dataset.count()
快做。
也许我们可以从 DataSet 的分区数量中计算出这些信息,我们可以吗?
最佳答案
您可以尝试使用 countApprox
在 RDD API 上,虽然这也启动了一个 Spark 作业,但它应该更快,因为它只是为您提供您想要花费的给定时间(毫秒)和置信区间(即真实值的概率)的真实计数的估计在该范围内):
用法示例:
val cntInterval = df.rdd.countApprox(timeout = 1000L,confidence = 0.90)
val (lowCnt,highCnt) = (cntInterval.initialValue.low, cntInterval.initialValue.high)
你必须玩一下参数
timeout
和 confidence
.超时越高,估计的计数就越准确。
关于apache-spark - 在spark中,如何快速估计数据帧中的元素数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44273870/