做网站什么商品好,上海风险地区划分最新查询,平面设计的前景怎么样,无锡祥搜做网站推广文章目录 一、实战概述二、提出任务三、完成任务#xff08;一#xff09;准备数据文件1、在虚拟机上创建文本文件2、将文本文件上传到HDFS指定目录 #xff08;二#xff09;实现步骤1、启动Hive Metastore服务2、启动Hive客户端3、基于HDFS文件创建外部表4、利用Hive SQL… 文章目录 一、实战概述二、提出任务三、完成任务一准备数据文件1、在虚拟机上创建文本文件2、将文本文件上传到HDFS指定目录 二实现步骤1、启动Hive Metastore服务2、启动Hive客户端3、基于HDFS文件创建外部表4、利用Hive SQL进行词频统计5、演示分步完成词频统计 一、实战概述 在本次实战中我们任务是在大数据环境下使用Hive进行词频统计。首先我们在master虚拟机上创建了一个名为test.txt的文本文件内容包含一些关键词的句子。接着我们将该文本文件上传到HDFS的/hivewc/input目录作为数据源。 随后我们启动了Hive Metastore服务和Hive客户端为数据处理做准备。在Hive客户端中我们创建了一个名为t_word的外部表该表的结构包含一个字符串类型的word字段并将其位置设置为HDFS中的/hivewc/input目录。这样Hive就可以直接读取和处理HDFS中的文本数据。 为了进行词频统计我们编写了一条Hive SQL语句。该语句首先使用explode和split函数将每个句子拆分为单个单词然后通过子查询对这些单词进行计数并按单词进行分组最终得到每个单词的出现次数。 通过执行这条SQL语句我们成功地完成了词频统计任务得到了预期的结果。这个过程展示了Hive在大数据处理中的强大能力尤其是对于文本数据的分析和处理。同时我们也注意到了在使用Hive时的一些细节如子查询需要取别名等这些经验将对今后的数据处理工作有所帮助。
二、提出任务
文本文件test.txt
hello hadoop hello hive
hello hbase hello spark
we will learn hadoop
we will learn hive
we love hadoop spark进行词频统计结果如下
hadoop 3
hbase 1
hello 4
hive 2
learn 2
love 1
spark 2
we 3
will 2三、完成任务
一准备数据文件
1、在虚拟机上创建文本文件
在master虚拟机上创建test.txt文件
2、将文本文件上传到HDFS指定目录
在HDFS上创建/hivewc/input目录 将test.txt文件上传到HDFS的/hivewc/input目录
二实现步骤
1、启动Hive Metastore服务
执行命令hive --service metastore 在后台启动metastore服务
2、启动Hive客户端
执行命令hive看到命令提示符hive
3、基于HDFS文件创建外部表 基于/hivewc/input目录下的文件创建外部表t_word执行命令 create external table t_word(word string) location /hivewc/input; 在MySQL的hive数据库的TBLS表里可以查看外部表t_word对应的记录 要删除外部表使用truncate table 外部表名
4、利用Hive SQL进行词频统计
编写Hive SQL语句进行词频统计执行命令select word, count(*) from (select explode(split(word, )) word from t_word) t_word_1 group by word;注意子查询(select explode(split(word, )) word from t_word)必须取别名比如t_word_1否则会报错。 这个Hive SQL语句的主要功能是对文本数据中的单词进行词频统计即计算每个单词在文本中出现的次数。 select word, count(*) from: 这部分是SQL的基本结构表示我们要选择word字段和每个word字段值的计数。 (select explode(split(word, )) word from t_word) t_word_1: 这是一个子查询。 explode(split(word, )): split(word, )函数会根据空格将每一行的word字段值分割成一个数组。explode函数则会将这个数组扩展为多行每行包含数组中的一个元素。这样原来的一行文本就变成了多行每行只包含一个单词。t_word_1是给这个子查询结果取的别名这是Hive的要求对于嵌套查询的结果需要指定别名。 group by word: 这部分指示Hive对查询结果进行分组具体来说是按照word字段的值进行分组。在分组之后对于每个唯一的word值Hive都会计算其出现的次数通过count(*)。
综上所述这个Hive SQL语句的作用是首先使用explode和split函数将原始文本数据中的句子拆分为单个单词然后通过子查询将这些单词作为新的行进行处理最后按照单词进行分组并计算每个单词的出现次数。执行该语句后结果将显示每个单词及其在文本中出现的次数。
5、演示分步完成词频统计
创建v_word视图执行命令CREATE VIEW v_word AS SELECT explode(split(word, )) AS word FROM t_word; 查看v_word视图的记录执行命令SELECT * FROM v_word; 对v_word视图按word字段分组统计个数执行命令SELECT word, count(*) FROM v_word GROUP BY word;