2017-04-05 45 views
-3

我有一个火花(斯卡拉)数据框“市场营销”约17列,其中1个作为“平衡”。该列的数据类型是Int。我需要找到平衡中值。我可以按照升序排列,但如何继续?我有一个暗示,可以使用scala的百分位数函数。我对这个百分比函数没有任何想法。谁能帮忙?从表格“市场营销”计算列“余额”的中位数

+0

你好,欢迎来到StackOverflow。请花一些时间阅读帮助页面,尤其是名为[“我可以询问什么主题?”(http://stackoverflow.com/help/on-topic)和[“我应该问什么类型的问题避免问?“](http://stackoverflow.com/help/dont-ask)。更重要的是,请阅读[Stack Overflow问题清单](http://meta.stackexchange.com/q/156810/204922)。您可能还想了解[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。 –

回答

0

中位数与第50百分位数相同。如果你不介意使用蜂巢功能可以执行下列操作之一:

marketingDF.selectExpr("percentile(CAST(Balance AS BIGINT), 0.5) AS median") 

如果你并不需要一个确切的数字,你可以考虑使用percentile_approx()代替。

这两个函数的文档位于here