Hive实战:词频统计_hive 对频数进行分组统计-程序员宅基地

技术标签: hive  

一、实战概述

在本次实战任务中,我们的目标是在大数据环境下利用Hive工具进行词频统计。以下是详细步骤和关键操作的优化描述:

  1. 数据源准备:

    • 将测试用的文本文件test.txt上传到HDFS的/hivewc/input目录,以便Hive高效访问数据。
  2. Hive环境准备:

    • 启动Hive Metastore服务,确保Hive元数据存储正常运行。
    • 启动Hive客户端,方便后续的数据操作和查询。
  3. 数据表创建:

    • 在Hive客户端中创建一个名为t_word的外部表,仅包含一个word字段,类型为字符串,用于存储拆分后的单词。
    • 将表的位置设置为HDFS中的/hivewc/input目录,实现Hive与HDFS数据的无缝对接。
  4. 词频统计逻辑实现:

    • 使用一条优化过的Hive SQL语句实现词频统计。该语句利用explode和split函数高效拆分每个句子为单个单词。
    • 通过子查询和分组操作对单词进行计数,确保准确统计每个单词的频率。
  5. 结果分析与展望:

    • 执行优化后的SQL语句,高效完成词频统计任务,并获得准确结果。
    • 通过这个实战任务,加深对Hive的理解和应用能力,为今后的数据处理工作积累经验。
    • 在大数据分析和处理任务中,这些经验将发挥重要的指导作用。

二、提出任务

  • 对以下数据进行,进行词频统计
hello hadoop hello hive
hello hbase hello spark
we will learn hadoop
we will learn hive
we love hadoop spark

三、完成任务

(一)准备数据文件

1、在虚拟机上创建文本文件

  • 在master虚拟机上创建test.txt文件
    在这里插入图片描述

2、启动Hadoop服务

  • 执行命令:start-all.sh
    在这里插入图片描述

3、将文本文件上传到HDFS指定目录

  • 在HDFS上创建/hivewc/input目录
    在这里插入图片描述

  • test.txt文件上传到HDFS的/hivewc/input目录
    在这里插入图片描述

(二)实现步骤

1、启动Hive Metastore服务

  • 我们需要启动Hive Metastore服务,这是Hive的元数据存储服务。
    执行命令:hive --service metastore &
    在这里插入图片描述

2、启动Hive客户端

  • 执行命令:hive,看到命令提示符hive>
    在这里插入图片描述

3、基于HDFS文件创建外部表

  • 基于/hivewc/input下的文件创建外部表t_word
    执行命令:CREATE EXTERNAL TABLE t_word(line string) LOCATION '/hivewc/input';
    在这里插入图片描述
  • 在MySQL的hive数据库的TBLS表里,我们可以查看外部表t_word对应的记录。
    在这里插入图片描述

4、查询单词表,所有单词成一列

  • 查看单词表记录,执行语句:SELECT line FROM t_word;
    在这里插入图片描述

  • 按空格拆分行数据,执行语句:SELECT split(line, ' ') FROM t_word;
    在这里插入图片描述

  • 让单词成一列,执行语句:SELECT explode(split(line, ' ')) AS word FROM t_word;
    在这里插入图片描述

5、基于查询结果创建视图

  • 基于查询结果创建了一个视图v_word
    执行语句:CREATE VIEW v_word AS SELECT explode(split(line, ' ')) AS word FROM t_word;
    在这里插入图片描述
  • 查询视图的全部记录,执行语句:SELECT word FROM v_word;
    在这里插入图片描述

6、基于视图进行分组统计

  • 基于视图分组统计操作,执行语句:SELECT word, COUNT(*) FROM v_word GROUP BY word;
    在这里插入图片描述

7、基于嵌套查询一步搞定

  • 为了更简便地实现相同的效果,使用嵌套查询:SELECT word, COUNT(*) FROM (SELECT explode(split(line, ' ')) AS word FROM t_word) AS v_word GROUP BY word;
    在这里插入图片描述
    注意,这里在嵌套查询中,我们为子查询取了一个别名,这个别名是v_word。

这条SQL语句是在处理一个名为t_word的表,该表中有一个word字段,该字段存储的是由空格分隔的单词字符串。

首先,使用explode(split(line, ’ ')) AS word从t_word表中的每一行word字段创建一个新的临时表(别名v_word)。这里split(word, ’ ')函数将每个word字段的内容按照空格分割成多个单词,并生成一个多行的结果集,每行包含一个单词。

explode函数则将这个分割后的数组转换为多行记录,即每一行对应原字符串中的一个单词。

然后,通过GROUP BY word对新生成的临时表v_word中的word字段进行分组,即将所有相同的单词归为一组。

最后,使用COUNT(*)统计每个单词分组的数量,结果将展示每个单词及其在原始数据集中出现的次数。

整个查询的目的在于统计t_word表中各个单词出现的频率。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/linlong2003/article/details/135761791

智能推荐

图像梯度-sobel算子-程序员宅基地

文章浏览阅读1w次,点赞12次,收藏61次。(1)理论部分x 水平方向的梯度, 其实也就是右边 - 左边,有的权重为1,有的为2 。若是计算出来的值很大 说明是一个边界 。y 竖直方向的梯度,其实也就是下面减上面,权重1,或2 。若是计算出来的值很大 说明是一个边界 。图像的梯度为:有时简化为:即:(2)程序部分函数:Sobelddepth 通常取 -1,但是会导致结果溢出,检测不出边缘,故使..._sobel算子

cuda10.1和cudnn7.6.5百度网盘下载链接(Linux版)_cudnn7.6网盘下载-程序员宅基地

文章浏览阅读3.6k次,点赞17次,收藏8次。cuda10.1和cudnn7.6.5百度网盘下载链接(Linux版)在官网下载不仅慢,,,主要是还总失败。。终于下载成功了,这里给出百度网盘下载链接,希望可以帮到别人百度网盘下载链接提取码: vyg5_cudnn7.6网盘下载

Python正则表达式大全-程序员宅基地

文章浏览阅读9.3w次,点赞69次,收藏427次。定义:正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。上面都是官方的说明,我自己的理解是(仅供参考):通过事先规定好一些特殊字符的匹配规则,然后利用这些字符进行组合来匹配各种复杂的字符串场景。比如现在的爬虫和数据分析,字符串校验等等都需要用_python正则表达式

Vue之条件渲染_条件渲染的基本概念-程序员宅基地

文章浏览阅读973次。条件渲染就是在指定的条件下,渲染出指定的UI。比如当我们显示主页的时候,应该隐藏掉登录等一系列不相干的UI元素。即UI元素只在特定条件下进行显示。而在VUE3中,这种UI元素的显示和隐藏可以通过两个关键字,`v-if` 和`v-show`来实现。但是虽然实现的功能一样,但他们两者有着一些细微的区别。总结起来这个区别就是:v-show控制UI元素隐藏时只是将UI的显示状态变成了不可见,实际上这个UI是存在的,但是v-if隐藏UI元素时则是直接干掉了这个UI元素,使其不显示_条件渲染的基本概念

直播+录播_直播加录播是-程序员宅基地

文章浏览阅读1.2k次。什么是直播回放?简单的说就是腾讯视频【支持将已经直播结束的节目再次播放,】方便你随时观看。目前此功能试运营阶段,最多可查看过往2小时内的节目,后续将可支持最多48小时内的节目。直播+回放+看点+预订功能,全面打通直播节目的过去、现在和未来。 直播回放和暂停功能目前已经同时在PC客户端播放器(2012 Beta2以上版本)和WEB网页的Flash播放器上线,操作简单便捷,如下图_直播加录播是

VDM Alloy 20与 Alloy 926超级不锈钢的化学成分及特性_vdm alloy 36元素含量-程序员宅基地

文章浏览阅读626次。VDM Alloy 20与 Alloy 926超级不锈钢的化学成分及特性化学成分概览材料特性VDM Alloy 20的材料特性包括:• 卓越的抗硫酸和磷酸腐蚀性能• 良好的抗晶间腐蚀能力• 出色的抗氯离子引起的应力腐蚀开裂能力• 良好的抗点蚀和缝隙腐蚀能力• 在室温以及高达500°C的高温下具有良好的机械性能VDM Alloy 926的材料特性包括:出色的抗点蚀和缝隙腐蚀能力与其他奥氏体不锈钢相比,抗应力腐蚀开裂的能力有所提高与氧化性和还原性介质接触时具有良好的耐_vdm alloy 36元素含量

随便推点

ico引入方法_arco的ico怎么导入-程序员宅基地

文章浏览阅读1.2k次。打开下面的网站后,挑选要使用的,https://icomoon.io/app/#/select/image下载后 解压 ,先把fonts里面的文件复制到项目fonts文件夹中去,然后打开其中的style.css文件找到类似下面的代码@font-face {font-family: ‘icomoon’;src: url(’…/fonts/icomoon.eot?r069d6’);s..._arco的ico怎么导入

Microsoft Visual Studio 2010(VS2010)正式版 CDKEY_visual_studio_2010_professional key-程序员宅基地

文章浏览阅读1.9k次。Microsoft Visual Studio 2010(VS2010)正式版 CDKEY / SN:YCFHQ-9DWCY-DKV88-T2TMH-G7BHP企业版、旗舰版都适用推荐直接下载电驴资源的vs旗舰版然后安装,好用方便且省时!) MSDN VS2010 Ultimate 简体中文正式旗舰版破解版下载(附序列号) visual studio 2010正_visual_studio_2010_professional key

互联网医疗的定义及架构-程序员宅基地

文章浏览阅读3.2k次,点赞2次,收藏17次。导读:互联网医疗是指综合利用大数据、云计算等信息技术使得传统医疗产业与互联网、物联网、人工智能等技术应用紧密集合,形成诊前咨询、诊中诊疗、诊后康复保健、慢性病管理、健康预防等大健康生态深度..._线上医疗的定义

计算机毕业设计 基于大数据的智能家居销量数据分析系统的设计与实现 Java实战项目 附源码+文档+视频讲解_基于大数据的智能家居销售数据分析系统 开题报告-程序员宅基地

文章浏览阅读1k次,点赞8次,收藏4次。随着科技的不断发展,智能家居系统已经成为了人们生活中不可或缺的一部分。而随着智能家居销量的不断增加,如何对这些数据进行有效的分析和利用也成为了当前亟待解决的问题。因此,本文提出了一种基于大数据的智能家居销量数据分析系统的设计与实现。该系统主要分为前台和后台两个部分,用户可以通过前台进行注册登录、查看冰箱信息、获取智能家居资讯等操作,管理员则可以通过后台进行用户管理、家电信息管理、系统管理等工作。通过对智能家居销量数据的分析,可以帮助企业更好地了解市场需求,优化产品设计和生产,提高销售效益。_基于大数据的智能家居销售数据分析系统 开题报告

异常:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:-程序员宅基地

文章浏览阅读3.6w次,点赞2次,收藏19次。问题java使用httpclient或者restTemplate进行https请求时,出现如下异常:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertP..._pkix path building failed: sun.security.provider.certpath.su

c# 窗体开发2 高级控件的使用_tooltiptext c#-程序员宅基地

文章浏览阅读794次,点赞2次,收藏9次。1.单选按钮(RadioButton)同一组中其他单选按钮不能同时选定分组形式:panel GoupBox 窗体方法: 属性 说明 Appearance RadioButton 控件的显示与命令按钮相似 Checked 确定是否已选定控件 方法 ..._tooltiptext c#