hive学习(五)

ops/2024/10/20 17:30:09/

一、hive的DML操作

1.load(向表中装载数据)

hive> load data [local] inpath '路径' [overwrite] into table 表名 [partition (partcol1=val1,…)];

特殊说明

1)local:标识从本地加载数据到Hive表,若没有local的话从HDFS加载数据到Hive表

2)overwrite:表示覆盖原有数据,若没有追加在原有数据上

3)若目标是分区表,则需用partition指定分区表

2.insert

1)将查询结构插入表中

INSERT (INTO | OVERWRITE) TABLE tablename [PARTITION
(partcoll=vall, partcol2=va12 ... ) ] select_statement;//INTO是追加,overwrite是覆盖

示例:

insert overwrite table student partition(month='20240818') select id, name from teacher 

2)给定values插入表中

INSERT (INTO | OVERWRITE) TABLE tablename [PARTITION
(partcoll [=vall], partcol2[=va12] ... ) ] VALUES values_row [,
values_row ... ]

示例:

insert into table  teacher partition(month='202408016') values(1,'mark');

3)将查询结果写入目标路径

INSERT OVERWRITE [LOCAL] DIRECTORY directory
[ROW FORMAT row format] [STORED AS
file format] select statement;

3.Export和Inmport

介绍:Export将表的数据和元数据信息一并导出到Hdfs路径,Import将Export到处的内容导入Hive,表的数据和元数据信息都会恢复

-- 导出
EXPORT TABLE tablename TO 'export_target_path'-- 导入
IMPORT
'source path' [LOCATION 'import_target_path' ][EXTERNAL] TABLE new_or_original_tablename FROM

二、hive的查询语句

语法

[WITH CommonTableExpression (, CommonTableExpression)*]    (Note: Only availablestarting with Hive 0.13.0)
SELECT [ALL | DISTINCT] select_expr, select_expr, ...FROM table_reference[WHERE where_condition][GROUP BY col_list][ORDER BY col_list][CLUSTER BY col_list| [DISTRIBUTE BY col_list] [SORT BY col_list]][LIMIT number]

1.基本查询

1)全表查询

select * from emp;

2)特定列查询

select id, name from emp;

注:关键字不能被缩写也不能多行

2)limit语句

//返回前5行
hive (default)> select * from emp limit 5;//从指定行数开始hive (default)> select * from emp limit 5,3;

3)where语句

基本同SQL语句相同,注意where语句中不能使用字段别名

4)关系运算函数

5)逻辑运算函数(与SQL相同)

 6)Join语句(与SQL相似)

--内连接(只有进行连接的两个表中都存在与连接条件相匹配的数据才会被保留下来)

select e.empno, e.ename, d.deptno from emp e join dept d on e.deptno = d.deptno;

--左外连接(JOIN操作符左边表中符合WHERE子句的所有记录将会被返回)

select e.empno, e.ename, d.deptno from emp e left join dept d on e.deptno = d.deptno;

--右外连接(JOIN操作符右边表中符合WHERE子句的所有记录将会被返回)

select e.empno, e.ename, d.deptno from emp e right join dept d on e.deptno = d.deptno;

--满外连接(将会返回所有表中符合WHERE语句条件的所有记录。如果任一表的指定字段没有符合条件的值的话,那么就使用NULL值替代)

 select e.empno, e.ename, d.deptno from emp e full join dept d on e.deptno = d.deptno;

--笛卡尔积

select * from table1 join table2

2.排序

1)order by(全局排序)

hive中,order by通常与limit使用

2)Sort  By(每个Redeuce内部排序)

对每个Reduce进行排序,对全局结果来说并不是排序

--设置reduce个数

hive (default)> set mapreduce.job.reduces=3;

--查看设置reduce个数

hive (default)> set mapreduce.job.reduces;

3)Distribute  By(分区)

结合sort by使用,且要求Distribute by 要在Sort by语句之前

4)Cluster  By(分区排序)

当 distribute by 和 sort by字段相同时,可以使用cluster by方式。

cluster by 除了具有distribute by 的功能外还兼具sort by的功能。但是排序只能是升序

排序,不能指定排序规则为asc或者desc。


http://www.ppmy.cn/ops/103600.html

相关文章

EmguCV学习笔记 VB.Net 8.2 分水岭法 watershed

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

浅析WebRTC技术在智慧园区视频管理场景中的应用

随着科技的飞速发展,智慧园区作为城市智慧化的重要组成部分,正逐步成为现代化管理的重要方向。智慧园区的建设不仅涉及硬件设施的智能化升级,还离不开高效的视频管理和实时通信技术。在这一背景下,WebRTC(Web Real-Tim…

HarmonyOS(52) 使用安全控件SaveButton保存图片

SaveButton使用简介 前言SaveButton简介约束与限制 实现点击事件全部源码 参考资料: 前言 在HarmonyOS(50) 截图保存功能实现一文中简单介绍了截图保存功能,本篇博文介绍一个更简单的保存图片控件SaveButton. SaveButton简介 SaveButton允许用户通过点…

2025舜宇集团校招二维码

舜宇光学集团校招 【2025内推码】 DSwNQ9yu DSJXN8Mr 舜宇光学科技2025校招内推!冲冲冲! 光学龙头-舜宇集团2025届全球校园招聘正式启动!!! 提供住宿(硕士单人间,独立卫浴!&#x…

plsql 的一次注释引起的报错

/* 游标的简单使用 */ declare vrow scott.emp%rowtype; cursor vrows is select * from scott.emp; BEGIN /* 打开游标 */ open vrows; /* 循环取数据 */ loop fetch vrows into vrow; exit when vrows%notfound; dbms_output.put_line(姓名&#…

【学术会议征稿】第五届机械工程、智能制造与自动化技术国际学术会议(MEMAT 2024)

第五届机械工程、智能制造与自动化技术国际学术会议(MEMAT 2024) The 5th International Conference on Mechanical Engineering, Intelligent Manufacturing and Automation Technology 目前,我国自动化技术随着科学技术水平的不断提高已经…

《高等代数》“爪”字型行列式

说明:此文章用于本人复习巩固,如果也能帮助到大家那就更加有意义了。 注:1)“爪”字型行列式的第一种求解方法是利用初等行(列)变换,将第一列除第一行的第 一个数以外的其它数…

【Python】运行tcl、perl程序

只要你的环境可以执行tcl、perl脚本,也就是说安装了perl、tcl的解释器。那么python程序就可以执行tcl、perl。 示例: import subprocesstcl_script_path "D:\\Perl_WorkSpace\\test.tcl" tcl_run_result subprocess.run([tclsh, tcl_scrip…