為了計算分位數,我使用可從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。
Spark 中是精確分位數還是近似分位數?
慕工程0101907
2023-08-16 16:24:53