码迷,mamicode.com
首页 > 其他好文 > 详细

Hive 操作与应用 词频统计

时间:2020-12-09 12:15:14      阅读:5      评论:0      收藏:0      [点我收藏+]

标签:load   http   数据   mkdir   文本文件   order   group by   文件   lazy   

一、hive用本地文件进行词频统计

1.准备本地txt文件

mkdir wc
cd wc
echo "hadoop hbase" > f1.txt
echo "hadoop hive" > f2.txt

技术图片

2.启动hadoop,启动hive

start-all.sh
hive

技术图片

技术图片

3.创建数据库,创建文本表

use hive;
create table if not exists wctext(line string); 
show tables;

技术图片
技术图片

4.映射本地文件的数据到文本表中

load data local inpath ‘/home/hadoop/wc/f1.txt‘ into table wctext;
load data local inpath ‘/home/hadoop/wc/f2.txt‘ into table wctext;
select * from wctext;

技术图片

5.hql语句进行词频统计交将结果保存到结果表中

SELECT word, count(1) AS count FROM  (SELECT explode(split(line, ‘ ’)) AS word FROM wctext) w GROUP BY word ORDER BY word;
create table wc as SELECT word, count(1) AS count FROM  (SELECT explode(split(line, ‘ ‘)) AS word FROM wctext) w GROUP BY word ORDER BY word;

技术图片
技术图片

6.查看统计结果

select * from wc;

技术图片

二、hive用HDFS上的文件进行词频统计

1.准备电子书或其它大的文本文件
技术图片

技术图片

2.将文本文件上传到HDFS上

hdfs dfs -put ~/wc/f3.txt /input

技术图片
技术图片

3.创建文本表

create table if not exists docs(line string);
show tables;

技术图片

4.映射HDFS中的文件数据到文本表中

load data inpath ‘/input/f3.txt‘ into table docs;

技术图片

5.hql语句进行词频统计交将结果保存到结果表中

create table wctest as SELECT word, count(1) AS count FROM  (SELECT explode(split(line, ‘ ‘)) AS word FROM docs) w GROUP BY word ORDER BY word;
SELECT word, count(1) AS count FROM  (SELECT explode(split(line, ‘ ’)) AS word FROM docs) w GROUP BY word ORDER BY word;

技术图片
技术图片

6.查看统计结果

select * from wctest;

技术图片

Hive 操作与应用 词频统计

标签:load   http   数据   mkdir   文本文件   order   group by   文件   lazy   

原文地址:https://www.cnblogs.com/DongDongQiangg/p/14085552.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!