亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spark 中是精確分位數還是近似分位數?

Spark 中是精確分位數還是近似分位數?

慕工程0101907 2023-08-16 16:24:53
為了計算分位數,我使用可從any或of中的函數approxQuantile訪問的方法。這篇文章解釋了它的近似方式。stat()DatasetDataframeSpark@Test@DisplayName("Quantiles de la population communale fran?aise")public void quantiles() throws TechniqueException {   Dataset<Row> populationCommunes = individus().selectExpr("populationTotale");   double[] quantiles = populationCommunes.stat().approxQuantile("populationTotale", new double[] {0.1, 0.25, 0.5, 0.75, 0.9}, 0);   LOGGER.info("Population des communes fran?aises :\n Q(10%) : {}, Q(25%) = {}, Q(50%) = {}, Q(75%) = {}, Q(90%) = {}",       quantiles[0], quantiles[1], quantiles[2], quantiles[3], quantiles[4]); }結果令人放心:Population des communes fran?aises : Q(10%) : 105.0, Q(25%) = 204.0, Q(50%) = 468.0, Q(75%) = 1186.0, Q(90%) = 3250.0但如果我真的想要得到精確的分位數值,而不是近似值,我該如何實現呢Spark?在這里,我有大約 35,000 個城市:我很樂意Spark花時間研究 的每個值Dataset。
查看完整描述

1 回答

?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

Spark 中的函數approxQuantile可用于計算精確的分位數。從文檔中我們看到有3個參數:

public double[][] approxQuantile(String[] cols, double[] probabilities, double relativeError)

最后一個是relativeError. 這里的描述說:

relativeError - 要達到的相對目標精度(大于或等于 0)。如果設置為零,則計算精確的分位數,這可能非常昂貴。請注意,接受大于 1 的值,但給出的結果與 1 相同。

所以你需要做的就是將此參數設置為 0.0。



查看完整回答
反對 回復 2023-08-16
  • 1 回答
  • 0 關注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號