—— 阿尔伯特·爱因斯坦

程序员の奇妙冒险

HiveHadoopHive
2025-04-10 11:31阅读:64评论:0

使用Hive代替MapReduce实现单词统计

在 https://www.cnblogs.com/osinn/p/18813258 这篇文章中讲述了Hadoop使用MapReduce实现经典单词统计案例,这次写一篇如何使用Hive代替MapReduce实现单词统计 准备本地文本文件 首先本地磁盘创建一个wordcount.txt文件,并且添加以

  • 在 https://www.cnblogs.com/osinn/p/18813258 这篇文章中讲述了Hadoop使用MapReduce实现经典单词统计案例,这次写一篇如何使用Hive代替MapReduce实现单词统计
_PROTECTED1_PROTECTED2_PROTECTED0__文件,并且添加以下内容
1
2
3
4
5
itczw
hadoop
 
_PROTECTED0__
1
2
3
4
5
6
7
8
9
--
CREATE TABLE raw_text (line STRING);
 
-- hive /home/xxxx/wordcount.txt wordcount.txt
LOAD DATA LOCAL INPATH '/home/xxxx/wordcount.txt' INTO TABLE raw_text;
 
-- SQL
select * from raw_text;
 
!image _PROTECTED0__ #### 创建结果表
  • 用于存放统计结果
1
2
CREATE TABLE word_count (word STRING, count INT);
 

###### 执行单词统计

1
2
3
4
5
6
INSERT INTO TABLE word_count
SELECT word, COUNT(1) AS count
FROM raw_text
LATERAL VIEW EXPLODE(SPLIT(line, ' ')) lv AS word
GROUP BY word;
 

##### 查看单词统计结果

1
2
select * from word_count;
 
!image _PROTECTED0__
1
2
INSERT INTO TABLE raw_text values('猪刚烈 猪刚烈 美猴王');
 
_PROTECTED2_PROTECTED3_PROTECTED0_PROTECTED4_PROTECTED1__表数据再执行统计,二是统计时使用覆盖的方式

##### 方式一

1
2
3
4
5
6
7
8
9
10
-- word_count
TRUNCATE TABLE word_count;
 
--
INSERT INTO TABLE word_count
SELECT word, COUNT(1) AS count
FROM raw_text
LATERAL VIEW EXPLODE(SPLIT(line, ' ')) lv AS word
GROUP BY word;
 
##### 方式二
  • 统计结果覆盖之前的统计
1
2
3
4
5
6
INSERT OVERWRITE TABLE word_count
SELECT word, COUNT(1) AS count
FROM raw_text
LATERAL VIEW EXPLODE(SPLIT(line, ' ')) lv AS word
GROUP BY word;
 
评论(0)
暂无评论来抢沙发吧~