一个专注于大数据技术架构与应用分享的技术博客

Kettle例子——生成100个随机数,并统计小于等于50和大于50个数

生成 100 个随机数,随机数取值于[0,100)之间, 计算小于等于 50 的随机数个数和 大于50 的随机数个 数;并把这两个统计数字放在数据库表的一行的两列中,即输出的结果有一行,一行包括两列,每列是一个统 计值。

 

  1. 生成随机数[0,100)
    1. Input --> Generate random value (Type: Random number) 生成一个[0,1)的随机数 (f1)
    2. 在Generate random value上右键点击Change Number of Copies to Start...设置100个拷贝数
    3. Transform --> Add constants 添加Integer常量100 (f2)
    4. 添加Transform --> Calculator,用公式A * B 获得随机数[0,100) (f3)
    5. (optional) Output --> Microsoft Excel output,导出生成的100个随机数,以便后面做数据验证
  2. 条件判断
    1. 条件判断:Flow --> Filter rows,条件是f3>50,条件为true的指向分组一,false的指向分组二
    2. 两个分支:Statistics --> Group by 创建两个分组,分组里面计算总条数
      1. Aggregates
        Name: >50count
        Subject:f3
        Type: Number of rows (without fields argument)
      2. Aggregates
        Name: <=50count
        Subject:f3
        Type: Number of rows (without fields argument)
    3. 条件判断后有两个分支,判断前,默认的数据发送模式Data Movement是轮询分发Round-Robin,要保证数据全部都流到两条支路去,条件判断前要用复制分发模式Copy Data to Next Steps(在Calculator上右键点击Data Movement数据发送...)
  3. 关联记录
    1. Join --> Join rows (Cartesian product) 笛卡尔乘积
    2. (optional) Output --> Microsoft Excel output,导出最终结果,跟1.5的数据比对验证

ktr文件下载 百度网盘 提取密码:o5pl

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Kettle例子——生成100个随机数,并统计小于等于50和大于50个数》
文章链接:https://macsishu.com/kettle%e4%be%8b%e5%ad%90-%e7%94%9f%e6%88%90100%e4%b8%aa%e9%9a%8f%e6%9c%ba%e6%95%b0%ef%bc%8c%e5%b9%b6%e7%bb%9f%e8%ae%a1%e5%b0%8f%e4%ba%8e%e7%ad%89%e4%ba%8e50%e5%92%8c%e5%a4%a7%e4%ba%8e
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。