Apache Hive 使用

news2024/12/29 8:31:53

Apache Hive 使用

    • 使用beeline 连接Apache Hive
    • 查看数据库
    • 使用或进入数据库
    • 创建表
    • 查看数据表
    • 上传数据
    • 数据操纵语言(DML)
      • 查询语句
    • 函数
    • 数学函数
      • 条件函数

请添加图片描述
)

使用beeline 连接Apache Hive

/export/server/apache-hive-3.1.2-bin/bin/beeline

beeline> ! connect jdbc:hive2://node1:10000 # 【jdbc:hive2://node1:10000】是自己的地址
beeline> root # 输入账号
beeline> password # 输入密码,点击回车

查看数据库

show databases;
或者
show schemas;

使用或进入数据库

use 数据库名称;

创建表

create tabele 表名 (字段名1,数据类型,字段名2,数据类型,……)
row format delimited
fields terminated by "分割符号";

查看数据表

show databases [in 数据库名称];
[in 数据库名称] 指定查看某个数据的中的数据表
desc formatted 数据表名 ; 查询表的元数据

上传数据

load data [local] inpath '数据文件的位置' [overwrite] into table '数据表名称';

从本地上传数据(示例)

(从本地上上传并不是客户端所在的位置是服务器所在的位置)

LOAD DATA LOCAL INPATH '/root/hivedata/students.txt' INTO TABLE student_local;

从HDFS中移动到表(示例):

LOAD DATA INPATH '/students.txt' INTO TABLE student_HDFS;

数据操纵语言(DML)

查询语句

--all:返回所有的行
select all state from covid_2019_usa;
-- distinct: 对数据去重后再返回
select distinct state from covid_2019_usa;
-- 出现返回时对两个自动共同去重
select distinct cases,state from covid_2019_usa;
-- 当where返回的值true时返回数据
select * from covid_2019_usa where 1=1;
-- 当where返回的值为false时不反悔任何数据
select * from covid_2019_usa where 1>2;
-- where 参数可以搭配函数使用,但是不支持聚合函数
select * from covid_2019_usa where length(state) >10;
-- where 可以搭配逻辑运算和比较运算使用
select state from covid_2019_usa where fips > 42000; -- 查询数据大于42000的城市
select state from covid_2019_usa where fips > 42000 and deaths > 100; --查询fips大于42000   并且  deaths> 100的城市
select state from covid_2019_usa where fips > 42000 or deaths > 100;-- 查询fips大于42000  或者  deaths> 100的城市

where搭配特殊条件使用

select * from covid_2019_usa where state is  null; -- 查询表中state为null的数据
select * from covid_2019_usa where state is not null; -- 查询表中state不为null的数据
select * from covid_2019_usa where fips between 1550 and 55555; -- 查询表中fips 1550到55555的数据
select * from covid_2019_usa where fips in (1500 ,100); -- 查询表中fips是1500和100的数据

– 聚合函数(函数的使用方法一致所以不再一一举例)

select count(state) from covid_2019_usa; -- 表中state有多少行
 -- group by语法(在group by 中所展示的字段要么是分组字段要么是聚合函数应用的字段,要不然会报错)
select state,count(countiy) from covid_2019_usa group by state;
-- 错误写法:org.apache.hadoop.hive.ql.parse.SemanticException:Line 1:7 Expression not in GROUP BY key 'fips'
select fips,state,count(countiy) from covid_2019_usa group by state;

– having筛选 as 是给字段起一个别名
– where 和 having 的区别:
– having是在分组后对数据进行过滤
– where是在分组前对数据进行过滤
– having后面可以使用聚合函数
– where后面不可以使用聚合函数

select state,sum(deaths) as sum_deaths from covid_2019_usa where count_time ="2021-01-28" group by state having sum_deaths > 10000;

– order by
– 对指定列数据进行排序

select state,sum(deaths) as sum_deaths from covid_2019_usa where count_time ="2021-01-28" group by state having sum_deaths > 10000 order by sum_deaths;

– limit 对返回的数据进行限制 (第一个参数是从第几行开始,第二个参数是显示几行)

select * from covid_2019_usa limit 2,5;

– 第一个参数据的是从0开始也就是0行才是真正意义上的第一行
– hive dml命令的执行顺序
– from > where > group(包含聚合) > having > order >select > limit和order by ;

– join 关联查询语法

select * from employee;

– 内连接 所取的数据必须是id都有的也就是交集
– inner join

select e.id,e.name,e2.city from employee e  inner join employee_address e2 on e.id = e2.id;

– 等价连接

select e.id,e.name,e2.city from employee e join employee_address e2  on e.id = e2.id;

– 隐式连接表示法

select e.id,e.name,e_a.city from employee e ,employee_address e_a where e.id = e_a.id;

– 左连接
– left join

select e.id,e.name,e_2.city from employee e left join employee_address e_2 on e.id = e_2.id ;

– 等价连接

select e.id,e.name,e2.city  from employee e left outer join employee_address e2 on e.id=e2.id;

函数

– 查看函数

show functions ;
describe function extended count;

– 函数分类

– 分为内置函数和用户自定义函数
– 用户自定义输出的udf分类标准
– 根据函数的输入输出的行数:
– UDF- 一进一出
– UDAF- 聚合函数,多进一出
– UDTF - 表生成函数,一进多出

– 内置函数
– 字符串函数

SELECT length('yujinlong'); -- 字符串长度
select reverse('yujinlong'); --倒置字符串
select concat('yu','jinlong'); --拼接

– 带分割符号的连接符(第一个参数是分割符号,后面是连接内容)

select concat_ws('.','www',array('itcast','com'));

– 字符串截取

select substr('yujinlong',-2);--索引从1开始,如果为负数则倒着数
select substr('yujinlong',2,2); -- 取两位

– 分割字符串
– 根据自定义的符号进行切割

select split('apache hive',' ');

– 日期函数
– 获取当前日期

select current_date();

–获取当前时间戳

select unix_timestamp();

– 按照日期转化时间戳

select unix_timestamp("2023-12-07 13:01:03");

– 按照指定格式转化时间戳函数

select unix_timestamp('20230108 13:20:20','yyyyMMdd HH:mm:ss');

– unix转化时间戳

select from_unixtime(1673184020);
select from_unixtime(0,"yyyy-MM-dd HH:mm:ss");

– 日期比较函数

select datediff('2012-12-08','2012-05-09');

– 增加日期函数

select date_add('2012-02-28',10);

– 日期减少函数

select date_sub('2012-02-28',10);

数学函数

– 取整函数

select round(3.1415926); --遵循四舍五入
select round(3.1415926); --可以指定精准度

– 取随机数

select rand();

– 设定种子,得到一个稳定的随机数序列

select rand(3);

条件函数

select * from t_students limit 3;

– if 判断

select if(sex='男','m','w') from students.t_students limit 3;

– 空置转化

select nvl('yu','yyyyy');
select nvl(null,'qqqq');

– 条件转化函数

select case 100 when 50 then 'tom' when 100 then 'mary' else 'tim' end ;
select case sex when '男' then 'm' when '女' then 'w' end from t_students;

愿君前程似锦,未来可期去💯,感谢您的阅读,如果对您有用希望您留下宝贵的点赞和收藏
本文章为本人学习笔记,学习网站为黑马程序员的Hadoop可以一起学习共同进步谢谢,如有请侵权联系,本人会立即删除侵权文章。可以一起学习共同进步谢谢,如有请侵权联系,本人会立即删除侵权文章。

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

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

相关文章

C51单片机基础之4G模块

一、4G模块初识EC03-DNC是亿佰特公司推出的 LTE CAT1 数传模块产品, 该产品软件功能完善, 覆盖绝大多数常规应用场景, EC03-DNC 是为实现串口设备与网络服务,通过网络相互传输数据而开发的产品 , 该产品是一款带分集接…

Linux 计算机网络 从 ping 来初窥计算机网络

Linux 计算机网络 从 ping 来初窥计算机网络 在上一章节《计算机网络从零到一》我们重点讲解了整个网络的形成,以及物理层、数据链路层、网络层这三层的形成以及他们所解决的问题,而本章节主要讲解 ping 命令在 Linux 中到底发生了一些什么。 ping 简介…

学习open62541 --- [73] 数据源造成无法监测变量的问题解决

本人最近遇到一个问题:给一个变量添加数据源后,使用监测项去监测变量变化,如果采样时间为0,会发现无法监测到变量的变化。 本文讲述这种情况的发生原因以及解决办法。 一 Server例子 首先准备server例子,如下&#x…

WSL 下载服务器加速

网络下载加速,这里使用修改 hosts 文件 ,地址映射 方法,所有网址适用,这里以 WSL 下载服务器为例子 命令 wsl -l -o 访问的地址: https://raw.githubusercontent.com/microsoft/WSL/master/distributions/Distributi…

Java设计模式中组合模式是什么/树形结构怎么组合或显示存储,编程怎么实现树形结构

继续整理记录这段时间来的收获,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用! 5.7 组合模式 5.7.1 概述 又名整体模式,是用于把一组相似的对象当作一个单一的对象依据树形结构来组合对象,用来表示部分以及整体层次属于…

基于asp.net+vbscript+wsc编写网站

1、前言 asp大家应该都比较熟悉&#xff0c;就是一个动态服务器页面&#xff0c;有点类似于jsp。只是不同的是asp可以在IIS服务器上创建&#xff0c;并且如果配置了.net环境的话&#xff0c;那么就可以在asp里面<%%>写vbscript。vbscript是一种脚本语言&#xff0c;其实就…

因果推断5--DML(个人笔记)

目录 1论文介绍 1.1论文 1.2摘要 1.3DML思路 2价格需求曲线 2.1价格需求弹性 2.2价格需求弹性计算DML代码 2.3价格需求弹性例子--数据集 2.4建模过程 2.5回归结果 1论文介绍 1.1论文 V. Chernozhukov, D. Chetverikov, M. Demirer, E. Duflo, C. Hansen, and a. W.…

(强制)类型转换方法

目录 一、C语言中的类型转换 二、C中的强制类型转换 2.1 static_cast 2.2 reinterpret_cast 2.3 const_cast 2.4 dynamic_cast 2.5 总结 一、C语言中的类型转换 在C语言中&#xff0c;若赋值运算符左右两侧类型不同&#xff0c;或者形参与实参类型不匹配&#xff0c;或…

[PyTorch笔记]深度学习计算

[PyTorch笔记]深度学习计算1 层和块1.1自定义神经网络块1.2顺序块1.3在前向传播中执行代码2.参数管理2.1 访问参数、用于调试、诊断和可视化2.2 参数初始化2.2.1内置初始化&#xff1a;2.2.2 自定义初始化2.3 在不同模型组件间共享参数3.延后初始化4.自定义层4.1 不带参数的层4…

深入理解数据结构 —— 跳表

什么是跳表 只要是平衡搜索二叉树能实现的功能&#xff0c;跳表都能实现&#xff0c;且时间复杂度都相同 例如&#xff1a; 哈希表的功能&#xff1a;插入&#xff0c;查找&#xff0c;删除有序表的功能&#xff1a;查找大于某值最小的数&#xff0c;小于某值最大的数&#…

干货 | 数据跨境传输合规体系的构建思路

以下内容整理自清华大学《数智安全与标准化》课程大作业期末报告同学的汇报内容。第一部分&#xff1a;研究背景随着经济活动数字化转型加快&#xff0c;“数据”对生产、流通、分配和消费活动产生重要影响&#xff0c;成为新的生产要素。地区之间数据流通愈发频繁&#xff0c;…

图像频域滤波(理想低通滤波)

图像变换是对图像信息进行变换&#xff0c;是能量保持但重新分配&#xff0c;利于加工处理。这里主要介绍傅里叶变换的图像频域滤波。 图像从空间域变换到频域后&#xff0c;其低频分量对应图像中灰度值变化较为缓慢的区域&#xff0c;高频分量表征图像中物体的边缘和随机噪声等…

基于yolov5的钢材表面缺陷识别(pycharm连接远程服务器,老版本yolov5运行遇到的问题)

时间&#xff1a;2023年1月 1 pycharm远程连接服务器 提示&#xff1a;需要下载pycharm专业版。 参考文献&#xff1a; [1] [2] [3] [4] 设置解释器的界面有一些不同&#xff0c;在此截图记录一下。 &#xff08;这是已经弄好了之后回头截图的&#xff0c;假设它不存在哈) …

【寒假每日一题】洛谷 P6206 [USACO06OCT] Another Cow Number Game G

题目链接&#xff1a;P6206 [USACO06OCT] Another Cow Number Game G - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 奶牛们在玩一种数字游戏&#xff0c;Bessie 想让你帮她预测一下结果。游戏开始时&#xff0c;Bessie 将得到一个正整数 N。此时她的分数为 0。 奶…

C 程序设计教程(07)—— 数据类型转换

C 程序设计教程&#xff08;07&#xff09;—— 数据类型转换 该专栏主要介绍 C 语言的基本语法&#xff0c;作为《程序设计语言》课程的课件与参考资料&#xff0c;用于《程序设计语言》课程的教学&#xff0c;供入门级用户阅读。 目录C 程序设计教程&#xff08;07&#xff…

mysql学习总结(一)

总结一下近期学习的mysql内容&#xff1a;这里主要总结一下mysql的底层数据结构索引的本质是什么&#xff1f;索引的本质就是排好序的一种数据结构&#xff0c;通过索引我们能干什么呢&#xff1f;&#xff0c;快速的去定位到我们想要查找的数据&#xff0c;就像是你看书&#…

Ansible 介绍与实战操作演示

文章目录一、概述二、Ansible 架构三、Ansible 工作原理四、Ansible 安装与基础配置1&#xff09;开启记录日志2&#xff09;去掉第一次连接ssh ask确认五、Ansible 的七个命令1&#xff09;ansible2&#xff09;ansible-doc3&#xff09;ansible-playbook4&#xff09;ansible…

非线性系统辨识:非线性 ARX 和 Hammerstein-Wiener

1. 系统辨识 系统辨识是根据系统的输入输出时间函数来确定描述系统行为的数学模型。现代控制理论中的一个分支。通过辨识建立数学模型的目的是估计表征系统行为的重要参数&#xff0c;建立一个能模仿真实系统行为的模型&#xff0c;用当前可测量的系统的输入和输出预测系统输出…

Js逆向教程25-BOM DOM过检测

作者&#xff1a;虚坏叔叔 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; Js逆向教程25-BOM DOM过检测 一、JS BOM 检测 它是一种浏览器环境&#xff0c;脱离了浏览器在外部不能直接调用的就是BOM 在浏览器中…

SAP工作流对象类

目录 1. 实现IF_WORKFLOW接口 2. 创建流程属性 3. 接口方法参考 4. 定义事件 5. 工作流触发&#xff08;事件抛出&#xff09; 业务对象作为工作流的数据内核&#xff0c;也是联系业务流程和工作流的重要核心&#xff0c;体现形式一般为BOR或者业务对象类&#xff0c;用来标识不…