hive和spark-sql计算stddev的结果差异
来源:互联网 发布:mina一次接收数据不全 编辑:程序博客网 时间:2024/06/05 09:52
问题描述:
利用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 stddevaqifrom my_tbwhere my_conditiongroup by phone, tour_ymd
问题原因:
虽然都执行的是一个SQL代码,但是从结果上看,hive中执行的时候是除以N(标准差)而spark-sql中执行时除以的是N-1(贝塞尔修正的标准差)
关于方差标准差知识点
- 方差:描述数据集中数据点的离散程度;数学公式如下:
其中N的作用为将计算得到的累积偏差进行平均,从而消除数据集大小对计算数据离散程度所产生的影响。
- 标准差数学上定义为方差的平方根
方差和标准差都是对一组(一维)数据进行统计的,反映的是一维数组的离散程度;与之相对应的是协方差,对两组数据进行统计的,反映的是两组数据之间的相关性。
- 使用标准差的优势
与方差相比,使用标准差来表示数据点的离散程度有3个好处:
- 表示离散程度的数字与样本数据点的数量级一致,更适合对数据样本形成感性认知;
- 表示离散程度的数字单位与样本数据及均值的单位一致,更方便做后续的分析运算;
- 在样本数据大致符合正态分布的情况下,标准差具有方便估算的特性:“3希格玛原则”。
- 贝塞尔修正
除了上述方差的计算方式,还有一种计算方式,公式如下使用N所计算得到的方差及标准差只能用来表示该数据集本身(population)的离散程度;如果数据集是某个更大的研究对象的样本(sample),那么在计算该研究对象的离散程度时,就需要对上述方差公式和标准差公式进行贝塞尔修正,将N替换为N-1。即是除以 N 还是 除以 N-1,则要看样本是否全:如果是抽样,则除以N-1,如果是全部,则除以N。
阅读全文
0 0
- hive和spark-sql计算stddev的结果差异
- spark整合hive和sql
- ORALC/HIVE 的STDDEV、STDDEV_POP、STDDEV_SAMP等函数
- Spark和Hive的ANSI SQL支持情况
- hive中间结果和结果的压缩
- hive -- stddev , stddev_pop , stddev_samp , var_pop , var_samp(计算方差标准差等)
- spark sql之访问 hive 和 MySQL
- spark-sql操作hive和hdfs
- Spark SQL和Hive使用场景?
- 对比Pig、Hive和SQL,浅看大数据工具之间的差异
- 对比Pig、Hive和SQL,浅看大数据工具之间的差异 -- 转发
- Spark-SQL和Hive on Spark, SqlContext和HiveContext
- spark基础之Spark SQL和Hive的集成以及ThriftServer配置
- Hadoop和Spark的4大差异
- Spark SQL与Hive的关系
- Spark SQL 支持的Hive内置函数
- Spark SQL 整合Hive的使用
- spark 之 把hive里的表和myslq 里的表做计算
- bzoj 5088: HDU 6000 Wash
- 下拉列表select动态添加option和获取选中的option的值和value
- CentOS 6.5环境源码编译安装MySQL 5.6.34
- 解决 Android N 上 安装Apk时报错:android.os.FileUriExposedException: file:///storage/emulated/0/Download/appN
- android 纯代码 详细编写布局文件
- hive和spark-sql计算stddev的结果差异
- 如何实现一个 Virtual DOM 算法
- JAVA中ArrayList和LinkedList的区别
- 查看设备是否被其他进程占用
- Caffe从入门到精通06
- 微信打开链接下载APP
- Python学习笔记(一)数字和字符串
- web项目发布至tomcat的ROOT下方法(开发环境和部署环境)
- 字符串去除嵌套括号内容