大数据Hadoop入门3

第五部分(Apache Hive DML语句和函数使用)

1.课程内容大纲和学习目标

2.Hive SQL-DML-load加载数据操作

下面我们随机创建文件尝试一下

先创建一个hivedata文件夹

在这个文件夹中写一个1.txt文件

下面使用beeline创建一张表

只要将1.txt文件放在t_1文件夹下,就能映射成功了

==================================================================================================================================================

下面是第一种方法,直接put进去

刷新一下

或者直接在web页面上传

不管什么方法

将结构化的文件放在对应的目录下面就能成功

 

=================

上面的方法,hive官方是不推荐的(因为上面的都是跳过hive去操作的)

我们有三台机器

我们的hive是安装在node1上面的,node1上面启动了hiveserver2和metastore两个服务

我们是使用node3作为客户端的(包括第一代客户端和第二代beeline客户端),如果使用的是datagrip,则客户端在外面的Windows系统上。

但不管我们的客户端在哪,最终都是连接到node1的hiveserver2上进行操作的。

如果我们在客户端上敲一个命令,加载数据local,这个local是hiveserver2服务所在的机器

本课程的SQL已经写好了

我们直接将其复制粘贴到datagrip

首先将我们当前的SQL语法切换为hive语法

接着将我们的会话做一个绑定

如果有直接绑定即可,没有的话创建一个新的会话即可

之后我们做一个验证

看是否与我们的hive集群连接上

然后针对下面的文件

我们创建两张表

我们运行命令创建两张表

==================================================================================================================================================

下面首先进行本地上传

文件首先存放到本地中

成功

红框中是关键的日志信息

做一个查看

数据显示正常

我们发现本地目录中的文件依旧存在

所以本地加载就是一个复制的过程

==================================================================================================================================================

我们将刚刚的文件放在hdfs的根目录下面

我们刚刚建了两张表

我们看一下另外一张表

我们继续加载数据

我们发现根目录下的文件没有了

3.Hive SQL-DML-insert插入数据

insert插了一条数据花了47秒

因为我们底层使用了Mr程序

我们首先创建一个表student

然后将student.txt加载到表student

再创建另外一个空表

使用insert+select

4.Hive SQL-DML-select查询-语法书和环境准备

下面我们创建一个表

将这个数据映射成功

首先将我们的文件上传到Linux

5.Hive SQL-DML-select查询-列表达式和distinct去重

选中表点击ctrl+q,可以查看表信息

6.Hive SQL-DML-select查询-where条件过滤

7.Hive SQL-DML-select查询-聚合操作aggregate

where中不能使用聚合函数

8.Hive SQL-DML-select查询-group by分组及语法限制

我们的state被group by分组

country被count聚合函数应用

但death什么都没有(系统不知道返回哪一行的death)

我们可以对报错做一个修改

9.Hive SQL-DML-select查询-having过滤操作

having主要为了解决where无法与聚合函数一起使用的弊端

10.Hive SQL-DML-select查询-order by排序

11.Hive SQL-DML-select查询-limit限制语法

12.Hive SQL-DML-select查询-梳理执行顺序

13.Hive SQL  join关联查询

14.hive函数概述及分类标准

15.hive常用的内置函数

如果有多个条件判断

第六部分(Hadoop生态综合案例--陌陌聊天数据分析)

1.课程内容大纲与学习目标

2.陌陌聊天数据分析案例需求

3.基于hive数仓实现需求开发-建库建表与加载数据

我们点击显示所有符号,可以查看我们的分割符

我们的tab键制表符就是->

空格键就是 ..... 

下面是课程使用的SQL文件

复制到datagrip

修改SQL为hive支持

与hive服务器做一个连接

首先创建数据库

然后创建表

然后加载数据

要先将文件上传到Linux系统中

4.基于hive数仓实现需求开发-ETL需求分析与技术支持

比如要统计每个小时的数量

我们做一个截取

那我们要以小时分组,可以用下面的方式

但有一个弊端

14w条数据,性能受到很大的影响

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/68446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WordPress event-monster插件存在信息泄露漏洞(CVE-2024-11396)

免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…

02数组+字符串+滑动窗口+前缀和与差分+双指针(D5_双指针)

目录 一、基本介绍 二、算法思想 三、算法模型 1. 对撞指针 2. 快慢指针 3. 滑动窗口 一、基本介绍 双指针是一种应用很广泛且基础的算法,严格来说双指针不是算法更像是一种思想。 双指针中的“指针” 不仅仅是大家所熟知的C/C里面的地址指针,还是…

【Pytest】结构介绍

1.目录结构介绍 project_root/ │ ├── tests/ # 测试用例存放目录 │ ├── __init__.py │ ├── test_module1.py │ ├── module1.py # 被测试的模块 ├── conftest.py # pytest配置文件,可定义fixture和钩子函数 ├── py…

网易云音乐歌名可视化:词云生成与GitHub-Pages部署实践

引言 本文将基于前一篇爬取的网易云音乐数据, 利用Python的wordcloud、matplotlib等库, 对歌名数据进行深入的词云可视化分析. 我们将探索不同random_state对词云布局的影响, 并详细介绍如何将生成的词云图部署到GitHub Pages, 实现数据可视化的在线展示. 介绍了如何从原始数据…

const的用法

文章目录 一、C和C中const修饰变量的区别二、const和一级指针的结合const修饰的量常出现的错误是:const和一级指针的结合总结:const和指针的类型转换公式 三、const和二级指针的结合 一、C和C中const修饰变量的区别 C中:const必须初始化,叫常…

AI DeepSeek

DeepSeek 文字解析 上传图片解析 视乎结果出入很大啊,或许我们应该描述更加清楚自己的需求。

Rust:Rhai脚本编程示例

当然,以下是一个简单的Rhai脚本编程示例,展示了如何在Rust中使用Rhai执行脚本。 首先,你需要确保你的Rust项目中包含了rhai库。你可以在你的Cargo.toml文件中添加以下依赖项: [dependencies] rhai "0.19" # 请检查最…

CTF-web: Python YAML反序列化利用

PyYAML存在以下几个特殊标签,如果这些标签被不安全的解析,会造成解析漏洞 从 PyYaml 版本 6.0 开始,load 的默认加载器已切换到 SafeLoader,以降低远程代码执行的风险。更新后易受攻击的是 yaml.unsafe_load 和 yaml.load(input, Loaderyaml.UnsafeLoade…

996引擎 - NPC-动态创建NPC

996引擎 - NPC-动态创建NPC 创建脚本服务端脚本客户端脚本添加自定义音效添加音效文件修改配置参考资料有个小问题,创建NPC时没有控制朝向的参数。所以。。。自己考虑怎么找补吧。 多重影分身 创建脚本 服务端脚本 Mir200\Envir\Market_Def\test\test001-3.lua -- NPC八门名…

css粘性定位超出指定宽度失效问题

展示效果 解决办法&#xff1a;外层容器添加display:grid即可 完整代码 <template><div class"box"><div class"line" v-for"items in 10"><div class"item" v-for"item in 8">drgg</div>&…

Git客户端工具

Git&#xff08;读音为/gɪt/&#xff09;是一个开源的分布式版本控制系统&#xff0c;可以有效、高速地处理从很小到非常大的项目版本管理。 [1]也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。 可使用工具TortoiseGit&#xff0c;官网下载…

Time Constant | RC、RL 和 RLC 电路中的时间常数

注&#xff1a;本文为 “Time Constant” 相关文章合辑。 机翻&#xff0c;未校。 How To Find The Time Constant in RC and RL Circuits June 8, 2024 &#x1f4a1; Key learnings: 关键学习点&#xff1a; Time Constant Definition: The time constant (τ) is define…

七、深入了解SpringBoot的配置文件

一、配置端口号 通过配置文件application.properties配置修改端口号 修改 application.properties 文件 #端口号修改成 9090 server.port9090运行结果&#xff0c;观察日志 二、配置文件格式 Spring Boot 配置⽂件有以下三种&#xff1a; • application.properties • ap…

下载arm架构的deb包的方法

在ARM板上操作 如果你是在arm板上使用apt安装和下载包&#xff0c;那么安装过的包会在以下路径里&#xff1a; /var/cache/apt/archives只需要复制出来就可以 如果只下载不安装&#xff0c;可以使用命令 sudo apt-get -d install package_name:arm64 # 如果是32位&#xff0…

TypeScript 学习 -类型 - 9

声明合并 成员变量合并&#xff1a;成员变量会合并&#xff0c;但类型必须一致。成员函数合并&#xff1a;如果函数签名不同&#xff0c;合并后的函数会是签名的联合类型。接口声明顺序&#xff1a;在同一个接口内按顺序合并&#xff1b;不同接口时&#xff0c;后声明的会覆盖…

第05章 14 绘制人脸部的PolyData并使用小圆锥体来展现法线

在VTK中&#xff0c;绘制人脸部的PolyData并使用小圆锥体来展现法线是一个常见的任务。这个过程可以通过以下步骤实现&#xff1a; 读取人脸部的PolyData&#xff1a;可以使用VTK的读取模块读取一个包含人脸部的.vtk或.obj文件。计算法线&#xff1a;使用VTK的vtkPolyDataNorm…

set集合

set集合 Set系列集合&#xff1a; 无序&#xff1a;存取顺序不一致 不重复&#xff1a;可以去除重复 无索引&#xff1a;没有带索引的方法&#xff0c;所以不能使用普通for循环遍历&#xff0c;也不能通过索引来获取元素 可以看出set是无序的存和打印的顺序不一样 Set接中的…

马尔科夫模型和隐马尔科夫模型区别

我用一个天气预报和海藻湿度观测的比喻来解释&#xff0c;保证你秒懂&#xff01; 1. 马尔可夫模型&#xff08;Markov Model, MM&#xff09; 特点&#xff1a;状态直接可见 场景&#xff1a;天气预报&#xff08;晴天→雨天→阴天…&#xff09;核心假设&#xff1a; 下一个…

「 机器人 」系统辨识实验浅谈

前言 系统辨识实验是一种通过实验和数据分析的方法,用于建立物理系统的数学模型的技术。系统辨识是控制工程和系统科学中的重要环节,尤其是在模型未知或复杂的情况下。以下是系统辨识实验的详细介绍: 1. 系统辨识实验的目的 1.1 建模 为动态系统(如机械系统、电气系统或生…

Word List 1

词汇表中的生词 词汇表中的词组成的搭配&#xff08;我不太认识的&#xff0c;认识的就不写了&#xff09;、重要的派生词 例句中的生词 我自己写的生词&#xff08;用于区分易混淆的词&#xff09; Word List 1 英文音标中文traditional belief传统信条traditional metho…