odps中的抽样与去重V0.1

作者: 小谷先生 | 来源:发表于2018-02-04 16:27 被阅读7次

分组抽样

希望按照性别年龄分组, 去抽样查看他们的身高体重, 那么mysql可以这么写:

select height, weight from student_table group by gender, age

可odps 不支持这样的语法, 于是找到了cluster_sample() 这个函数.

  • boolean cluster_sample(bigint x[, bigint y]) over(partition by col1[, col2..])
    按照若干column分组, 每组取x个样本.
 select height, weight
    from (
        select height, weight, cluster_sample(1) over(partition by  gender, age) as flag
        from student_table 
        ) sub
    where flag = true;

同样sql执行多次结果不一, 印证了在抽样时内部会有不同的随机数种子. 该函数可以满足需求.

应用: id去重

有些表, id列没有被定义为主键, 所以会有些重复, 有些脏数据, 那么怎么得到一个新的表, 干掉重复呢?

 select *
    from (
        select *, cluster_sample(1) over(partition by  id) as flag
        from student_table 
        ) sub
    where flag = true;

随机抽样

  • double rand(bigint seed)
    以seed为种子返回double类型的随机数,返回值区间是的[0,1).
    seed可以不填, 取默认值. 此时产生的序列为:
0.00047147460303803655
0.8346089547661175
0.763442322501653
0.4278550224508415
0.672133090287509
0.25099721842026207
0.24351493979036573
0.5438010611309675
0.7853498113273409
0.25878882699589656

每次执行结果都是固定的.

  • double trunc(double number, bigint n)
    将小数number截断, 只保留小数点后n位.

那么随机抽样10%的数据, 就可以这么写:

select * from
(select *, 
        trunc(rand(),2)*100 as random 
from  student_table ) tmp
where random between 1 and 10 ; --[1,10] 约10%的数据

相关文章

  • odps中的抽样与去重V0.1

    分组抽样 希望按照性别年龄分组, 去抽样查看他们的身高体重, 那么mysql可以这么写: 可odps 不支持这样的...

  • ODPS SQL学习笔记一

    1、ODPS与Mysql的一个区别: 2、 3、ODPS SQL环境下日期类型的默认格式:yyyy-mm-dd h...

  • 统计

    抽样采集数据:概率抽样和非概率抽样概率抽样也称为随机抽样,是指遵守随机原则进行的抽样,总体中每个单位都有一定的机会...

  • AB测试原理(三)重抽样检验

    根据中心极限定理,重抽样可以针对非正态分布的数据做检验,重抽样分为自助法、置换检验两种。(面向数据科学家的实用统计...

  • 2019-01-23

    重抽样和自助法 使用场合:数据抽样分布于未知或者混合分布,样本量过小,存在离群点,基...

  • 二重抽样

  • 如何绕过ODPS不支持的笛卡尔积的限制

    odps不支持无 on 的 join 会报 *ODPS-0130252 Cartesian product is ...

  • 属性抽样与变量抽样的却别

    PMBOK.6th中的描述: “属性抽样”(结果为合格或不合格)与 “变量抽样”(在连续的量表上标明结果所处的位置...

  • 学习统计笔记

    抽样方法 1 简单随机抽样 要点:随机≠随意 它的抽样理念是从总体中选出抽样单位,从总体中抽取的每个可能样本均有同...

  • 2019-08-09丨《市场调查与预测》丨等距随机抽样

    等距随机抽样 也叫机械抽样或系统抽样,具体指下面这一种抽样方法,现在总体中按照一定的标志将抽样单位顺序排列,并根据...

网友评论

    本文标题:odps中的抽样与去重V0.1

    本文链接:https://www.haomeiwen.com/subject/kowmzxtx.html