【操作分享】怎么计算wordcount

本篇帖子将从下述4个步骤详细讲解如何计算wordcount,感兴趣的同学一起来看看吧~

  1. 创建wordcount.txt文件,并上传HDFS
  2. 创建内表,并导入HDFS数据
  3. 创建结果表
  4. 计算wordcount

步骤一 创建wordcount.txt文件,并上传HDFS

任务:将本地文件wordcount.txt上传至HDFS目录中。

步骤

① // 在本地创建wordcount.txt文件,并完成数据写入

echo -e "Deer Bear River\nCar Car River\nDeer Car Bear" > /transwarp/Desktop/wordcount.txt

示例: 
echo -e "Deer Bear River\nCar Car River\nDeer Car Bear" > /root/wordcount.txt

完成后可以输入指令查看数据

cat /root/wordcount.txt
image.png

② 初始化客户端

source TDH-Client/init.sh

kinit admin(未开安全)

③ // 在HDFS中创建作业输入目录

hadoop fs -mkdir -p /training/{student_name}/inceptor_data/wordcount

示例: 

hadoop fs -mkdir -p /tmp/wordcount

完成后输入指令可以查看当前/tmp目录下所有的文件

hadoop fs -ls /tmp/

image.png

④ // 将wordcount.txt上传到作业输入目录

hadoop fs -put /transwarp/Desktop/wordcount.txt /training/{student_name}/inceptor_data/wordcount/

示例: 

hadoop fs -put /root/wordcount.txt /tmp/wordcount/

完成后输入指令可以检查该目录下是否涵盖了wordcount.txt文件

hadoop fs -ls /tmp/wordcount

可以输入指令进一步查看该文件下的数据

hadoop fs -cat  /tmp/wordcount//wordcount.txt

image.png

⑤ // 修改文件目录权限

hadoop fs -chmod -R 777 /training/{student_name}/inceptor_data/wordcount/

示例: 

hadoop fs -chmod -R 777 /tmp/wordcount

image.png


步骤二 创建内表,并导入HDFS数据

任务:创建内表docs,并将HDFS中的数据导入。

步骤

① //  创建数据库, 命名规范为db_账号名,如账号student1,创建数据库为db_student1

create database {database_name};

示例:

create database yijiend;

可以输入指令展示创建的数据库yijiend;

show databases;

image.png

② 进入数据库

use {database_name};

示例: 

use yijiend;

可以输入指令展示该数据库下的表

show tables;

image.png

③ // docs表创建

create table docs(line string);

image.png

④ // 导入hdfs数据

load data inpath '/training/{student_name}/inceptor_data/wordcount' into table docs;

示例: 

load data inpath '/tmp/wordcount' into table docs;

输入完成后可以查看下数据是否导入成功
select * from docs;

image.png


步骤三 创建结果表

任务:创建内表wc,保存词频统计结果。

步骤

① //  docs表创建

create table wc(word string, totalword int);

步骤四 计算wordcount

任务:对docs表完成词频统计,将结果保存到wc表中。

步骤

① //  wordcount统计

from (select explode(split(line, ' ')) as word from docs) w
insert into table wc
select word, count(1) as totalword
group by word
order by word;

image.png


② // 查看分析结果

select * from wc;

示例: 

image.png






评论
登录后可评论
发布者
星小环分享号
文章
193
问答
243
关注者
27
banner
关注星环科技
获取最新活动资讯

加入TDH社区版技术交流群

获取更多技术支持 ->

扫描二维码,立即加入