hive版本wordcount
来源:互联网 发布:网络购物合同纠纷审理 编辑:程序博客网 时间:2024/04/27 18:39
1. wordcount程序相当于hadoop MapReduce的一个helloworld程序吧,主要是将文件中的单词内容一行一行得读入,在map端进行拆分,拆成key-value的形式, key是具体的单词,value是数字1,map到reduce的过程会进行一次归并,将key一样的进行合并组成key-values的形式,其中key是具体的单词,values是很多个1,在reduce端将这个values循环相加就是这个单词的个数。
2. 纯的MR代码如下:
3. 这样做需要写很多java代码,但是如果放到hive中就比较简单(关于hive是什么就不细说了),具体做法如下:
a. 创建一个数据库,如levi
create database levi;
b. 建表
create external table src_data(line string) row format delimited fields terminated by '\n' stored as textfile location '/levi/wordcount/src_data';
这里假设我们的数据存放在hadoop下,路径为:/levi/wordcount/src_data,里面主要是一些单词文件,内容大概为:
hi man
what is your name
my name is levi
you
kevin
执行了上述hql就会创建一张表src_data,内容是这些文件的每行数据,每行数据存在字段line中,select * from src_data; 就可以看到这些数据
c. 根据MapReduce的规则,我们需要进行拆分,把每行数据拆分成单词,这里需要用到一个hive的内置表生成函数(UDTF):explode(array),参数是array,其实就是行变多列:
create table words(word string);
insert into table words select explode(split(line, " ")) as word from src_data;
split是拆分函数,跟java的split功能一样,这里是按照空格拆分,所以执行完hql语句,words表里面就全部保存的单个单词
d. 这样基本实现了,因为hql可以group by,所以最后统计语句为:
select word, count(*) from levi.words group by word;
4. 对比写MR和写hive,还是hive比较简便,对于比较复杂的统计操作可以建一些中间表,或者一些视图之类的,之后博客会持续更新hive的一些操作。
- hive版本wordcount
- hive版本wordcount
- 使用Hive处理WordCount
- Hive实现wordCount程序
- Hive应用实例:WordCount
- guava版本的wordcount
- scala版本的wordCount
- Hadoop WordCount详解(2.7.1版本)
- Hadoop 2.0版本wordcount 以及 排序
- scala版本wordcount的几种写法
- Spark开发-WordCount详细讲解Java版本
- 查看hive版本
- 查看hive版本
- 查看hive的版本
- wordcount
- wordcount
- WordCount
- wordCount
- C# StreamReader文件逐行读取为List<string>
- Git部分命令
- 欢迎使用CSDN-markdown编辑器
- Hive 内置函数
- 白话经典算法系列之十二 数组中只出现一次的两个数字(百度面试题)
- hive版本wordcount
- 为一个驱动添加Android中间层的步骤
- ubuntu install tensorflow keras
- JavaScript(Node.js)+ Selenium自动化测试
- HDU.1556 Color the ball (线段树 区间更新 单点查询)
- egret 点与对象碰撞 对象与对象碰撞
- 五分钟读懂UML类图
- 流类库与输入输出
- Highways