hive计算分位数

//参考资料:https://www.cnblogs.com/fujian-code/p/8798409.html
使用percentile_approx函数计算age的分位数

//describe只展示计数、均值、标准差、最小值和最大值, Q1、中位数、Q3需要单独统计
/*
scala> df.select("age").describe().show
+-------+------------------+
|summary|               age|
+-------+------------------+
|  count|              5811|
|   mean|29.463087248322147|
| stddev| 4.775418126339402|
|    min|                18|
|    max|               118|
+-------+------------------+
*/

//创建TempView,再使用spark.sql计算分位数
df.createOrReplaceTempView("trainFeatures")

scala> spark.sql("SELECT min(age) AS Min_age, percentile_approx(age, 0.25) AS Q1_age, percentile_approx(age, 0.5) AS Median_age," +
"percentile_approx(age, 0.75) AS Q3_age, max(age) AS Max_age FROM trainFeatures").show
+-------+------+----------+------+-------+
|Min_age|Q1_age|Median_age|Q3_age|Max_age|
+-------+------+----------+------+-------+
|     18|    26|        29|    32|    118|
+-------+------+----------+------+-------+


转载于:https://my.oschina.net/kyo4321/blog/3050522

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值