2017-04-05 75 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