hive如何执行一条sql的例子
2024-08-26 21:02:59
SQL如何在Mapreduce执行
左边是数据表,右边是结果表,这条 SQL 语句对 age 分组求和,得到右边的结果表,到底一条简单的 SQL 在 MapReduce 是如何被计算, MapReduce 编程模型只包含 map 和 reduce 两个过程,map 是对数据的划分,reduce 负责对 map 的结果进行汇总。
select id,age,count(1) from student_info group by age
首先看 map 函数的输入的 key 和 value,输入主要看 value,value 就是 user_info 表的每一行数据,输入的 value 作为map函数输出的 key,输出的 value 固定为 1,比如<<1,17>,1>。 map 函数的输出经过 shuffle 处理,shuffle 把相同的 key 以及对应的 value 组合成新<key,value集合>,从 user_info 表看出map输出 2 次<<1,17>,1>,那么经过 shuffle 处理后则会输出<<1,17>,<1,1>>,并将输出作为 reduce 函数的输入。
在 reduce 函数会把所有 value 进行相加后输出结果,<<1,17>,<1,1>>输出为<<1,17>,2>。 这就是一条简单 SQL 在 Mapreduce 执行过程,可能你会有点迷糊,在这里我画了一张流程图,结合流程图你会更加清楚。
https://www.cnblogs.com/TFengStorm/p/10198853.html
最新文章
- ABP源码分析四:Configuration
- AnguarJS 第二天----数据绑定
- 算法:POJ1006 三重峰值问题
- Spring Trasnaction管理(3)- 事务嵌套
- Android studio修改Logcat颜色
- jstl fn标签
- Linux使用笔记: 定制core dump文件的文件名
- day06 Java面向对象
- linux eval命令
- DedeCms 建站随笔(一)
- python-大话装饰器
- c++内存对齐 转载
- java基础练习 11
- 【转】JDBC学习笔记(2)——Statement和ResultSet
- python各种运算优先级一览表
- 使用Spring-boot小结
- JS时间的获取及格式
- 【原创】Linux基础之查看linux发行版以及内核版本
- crontab,定时任务执行找不到库or shell可执行,crontab 定时任务下就不能执行,tensorflow,ImportError: libcuda.so.1: cannot open shared object file: No such file or directory
- 普元eos、soa、esb
热门文章
- C++中string类
- Andriod——手机尺寸相关的概念 +尺寸单位+关于颜色
- Java中的队列都有哪些,有什么区别?
- Linux惊群效应详解
- 发送邮件--MFMailComposeViewController
- Delphi,C语言互通脚本引擎研究
- How to change and add some params to request in Laravel controller?
- [Robot Framework] Robot Framework里面的变量怎么知道是在哪里定义的?
- javascript对象bind()方法兼容处理
- 之前的一些Oracle的经验总结