hive和spark-sql计算stddev的结果差异

博客探讨了在使用hive和spark-sql计算stddev时出现的不同结果,指出在spark-sql中得到NaN值,而在hive中是0.0。内容涉及方差和标准差的概念,强调标准差在衡量数据离散程度、单位一致性以及正态分布估算中的作用,并提及贝塞尔修正可能的影响。
摘要由CSDN通过智能技术生成

问题描述:

利用spark-sql得到了NaN的值,核对发现这些值都是关于stddev计算后得到的,但是在hive中查得为0.0。

使用的SQL代码为

select
  phone
, tour_ymd  
, stddev(total_price) as total_price_stddev
, stddev(bedroom_cnt) as bedroom_cnt_stddev
, stddev(tour_last_mintues) as tour_last_mintues_stddev
, stddev(showing_last_3day_cnt) as showing_last_3day_cnt_stddev
, stddev(showing_last_7day_cnt) as showing_last_7day_cnt_stddev
, stddev(showing_last_15day_cnt) as showing_last_15day_cnt_stddev
, stddev(showing_last_30day_cnt) as showing_last_30day_cnt_stddev
, stddev(temp) as stddevtemp
, stddev(humidity) as stddevhumidity
, stddev(aqi) as stddevaqi
from my_tb
where my_condition
group by phone, tour_ymd

问题原因:

虽然都执行的是一个SQL代码,但是从结果上看,hive中执行的时候是除以N(标准差)而spark-sql中执行时除以的是N-1(贝塞尔修正的标准差)

关于方差标准差知识点

  • 方差ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值