学习Hive命令大全,请看它!

一、创建数据库语句

create database 数据库名;

二、创建表语句

1.创建一个指定名字的内部表:CREATE TABLE 表名 ,如果名字相同则抛出异常,,可以用IF NOT EXISTS 来忽略这个异常。
2. 创建一个外部表:CREATE external TABLE 表名
3.like建表:允许用户复制现有的表结构,但是不复制数据例如:create table 表名1 like 表名2
4. 记录行数:ROW FORMAT DELIMITED
5. 分割列(字段):fields terminated by ‘\t’
6. 分割集合和映射:collection items terminated by ‘,’ ; map keys terminated by ‘:’
7. 指定文件存储格式:stored as textfile
8. hdfs数据存储路径:location ‘hdfs存储路径’
9. 创建分区表:create table 表名(…)partitioned by (…)

示例

1、创建一个内部表示例

create table emp(
empno int,empname string,job string)
row format delimited fields terminated by '\t'
collection items terminated by ',' 
map keys terminated by ':'
stored as textfile;

2、创建一个外部表示例

create external table emp_external(
empno int,empname string,job string)
row format delimited fields terminated by '\t'
collection items terminated by ',' 
map keys terminated by ':'
stored as textfile;

3、创建一个分区表示例

create table order_partition(
orderno string,event_time string)
partitioned by (event_month string)
row format delimited fields terminated by '\t'
collection items terminated by ',' 
map keys terminated by ':'
stored as textfile;

三、修改表语句

1. 重命名表语法:alter table tb_name rename to new_tb_name
2. 添加/更新列语法:alter table tb_name add|replace columns(col_name data_type,…)
添加列示例
//创建测试表

 create table student(id int,age int,name string)
 row format delimited fields terminated by '\t';
 //添加一列adress
 alter table student add columns(address string);
 //更新所有的列
 alter table student add columns(id int,name string);
 //查看表结构,现在表中只有id和name两列
 desc student;

四、显示命令

  1. 查看所有数据库:show databases;
  2. 查看某个数据库中的所有表:show tables;
  3. 查看某个表的所有分区信息:show partitions;
  4. 查看hive支持的所有函数:show functions;
  5. 查看表的信息:desc extended tb_name;
  6. 查看更加详细的表信息:desc formatted tb_name;

五、load加载

load操作只是单纯的复制/移动操作,将数据文件移动到Hive表对应的位置
(1)filepath:
相对路径,例如:project/datal
绝对路径,例如:/user/hive/project/datal
(2)local关键字:
指定了local关键字,load命令会去查找本地文件系统中的filepath
如果没有指定local关键字,则根据inpath中的uri查找文件,包含模式的完整uri
(3)overwrite关键字
如果使用了,则目标中的内容会被删除,然后再将filepath指向的文件/目录中的内容添加到表/分区中
,如果目录表分区已经有一个文件并且文件名和filepath中的文件名冲突,那么新文件会取代旧文件。

示例1:加载本地文件到Hive表

load data local inpath '/tmp/warehouse/emp.txt' into table emp;

示例2:加载HDFS文件到Hive表
//上传本地文件到HDFS

cd /root/data
hdfs dfs -mkdir -p /data/hive
hdfs dfs -put  /tmp/warehouse/emp.txt /data/hive

//加载hdfs文件到Hive表
load data local inpath '/tmp/warehouse/emp.txt' into table emp;

示例3:使用overwrite,覆盖表中已有的数据

load data local inpath '/tmp/warehouse/emp.txt'  overwrite into table emp;

示例4:加载数据到hive分区表

load data local inoath '/tmp/warehouse/emp.txt'overwrite into table order_partition  partition(event_month='2020=07');

六、insert

  1. insert将查询结果插入到Hive表/分区:
 insert overwrite table tb_name1 [partition(partcoll=val1,..)] select_statment1 from from_statement
  1. 多insert插入:from 表/分区
 insert overwrite table tb_name1[partition(partcpll=val1,...)]select _statement1
 [ insert overwrite table tb_name1[partition(partcpll=val1,...)]select _statement2]...
  1. 动态分区插入:
insert overwrite table tb_name1 partition(partcoll=val1,..) select_statment1 from from_statement
  1. 通过指定列插入:
 insert into employee(name) select 'John' from test limit 1;
  1. 通过指定值插入:
insert into employee(name) value('Judy'),('John');
  1. 从同一数据源插入本地文件,hdfs文件,表
from ctas_employee
insert overwrite[local] directory '/tmp/out1'  select * from..
insert overwrite directory '/tmp/out1' select * from..
insert overwrite table employee_internal select * from..;

  1. 以指定格式插入数据
insert overwrite directory '/tmp/out3'
row format delimited fields terminated by ','
select * from ctas_employee;

七、select

这里我们直接用示例来做比较直接。

示例1:全表查询、指定字段查询

select * from emp;
select empno,empname from emp;

示例2:条件过滤
//1.等值过滤

select * from emp where empno=10;
select * from emp where empname='jdk';

//2.>=,<=过滤

select * from emp where empno>=10;
select * from emp where empno<=10;

//3.between and区间过滤

select empname,empno from where empno between 80 and 100;

//4.limit控制结果集记录条数

select * from emp limit 4;

//5.in / not in

select * from emp where empname in('opt','tmp');
select * from emp where empname not in('opt','tmp');

//6.is /not null

select * from emp where comm is null;
select * from emp where comm is not null;

示例3:使用聚合统计函数(max/min/count/avg/sum)

//1.统计部门编号为10的部门员工数

select count(*) from emp where empno=10;

//2.求最高工资,最低工资,工资总和,平均工资

select max(sal),min(sal),avg(sal),sum(sal) from emp;

//3.求每个部门的平均工资

select empname,deptnp,avg(sal) from emp group by depto

注意:gropu by 为聚合运算,用于分组,如果没有则默认聚合整个表,一般计算某部门的平均工资类似的问题都要聚合某个hive里的变量

//4.CTE和嵌套查询
1.CTE

with tab1 as (select id,name,age from people) 
select * from tab1;

2.嵌套查询

SELECT * FROM (SELECT * FROM employee) a;
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
⼤数据java操作hive ⼤数据 ⼤数据 java操作 操作hive 版权声明: 本⽂为博主学习整理原创⽂章,如有不正之处多多指教。 未经博主允许不得转载。 虚拟机上操作,保证 虚拟机上操作,保证hive数据库能正常连接进⼊。 数据库能正常连接进⼊。 如因退出没有⽤到命令(quit;),第⼆次进⼊则会报错。解决⽅法,切换到 [root@xcl ~]# cd apache-hive-2.1.1-bin/conf/ [root@xcl conf]# vi hive-site.xml 最后进⾏初始化命令为:schematool -initSchema -dbType mysql 在任意⽬录下输⼊hive,则ok。 创建数据库、在数据库中创建数据表,在本地 创建数据库、在数据库中创建数据表,在本地"造数据 造数据" Create databases text; 例: CREATE TABLE t4(name String ,age int,likes ARRAY<String>,relation MAP<String,String>,location struct<country:String,city:String ,doornum:int>) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' COLLECTION ITEMS TERMINATED BY '^' MAP KEYS TERMINATED BY ':'; "造的数据"已经分好类 # 字段分割符是逗号 # 数组类型分隔符是^号 # map数据类型分割符是冒号 tom,18,lol^篮球^⾳乐,father:tom1^mother:lili,US^LOS^16 ⽤load上传本地数据到表中 load data local inpath '/usr/local/apps/test1.txt' into table t4; eclipse操作步骤(要配好 操作步骤(要配好maven创建 创建maven项⽬) 项⽬) maven项⽬需要的包,在 项⽬需要的包,在"pom.xml"中添加 中添加 <dependency> <groupId>org.apache.hive </groupId> <artifactId>hive-jdbc </artifactId> <version>2.1.1</version> </dependency> java连接 连接hive代码: 代码: //加载驱动 Class.forName("org.apache.hive.jdbc.HiveDriver"); //获取连接 String url="jdbc:hive2://192.168.1.90:10000/test"; Connection connection= DriverManager.getConnection(url,"root",""); //执⾏sql PreparedStatement ps=connection.prepareStatement("SELECT * FROM table01 "); //获取结果 ResultSet rs=ps.executeQuery(); while (rs.next()){ System.out.println("测试数据输出结果是:"+rs.getString(1)); } //关闭连接 rs.close(); ps.close(); connection.close(); 在代码中添加 注意:引的包全是sql包 引完后会报异常,抛出异常即可 如出现这个问题 解决⽅法: <dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId> <version>1.7</version> <scope>system</scope> <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath> </dependency>
Hive SQL开发指南是指针对Hive SQL编程的一份指南或指导手册。Hive是一个基于Hadoop的开源数据仓库工具,它使用Hive Query Language(HiveQL)进行数据查询和分析。以下是关于Hive SQL开发指南的一些重要内容。 首先,指南介绍了Hive SQL的基本语法和语义。Hive SQL与传统的关系型数据库SQL有一些差别,指南会详细说明这些差异并提供相应的示例。 其次,在指南中会介绍如何连接到Hadoop集群中的Hive服务并执行SQL查询。这包括配置Hive客户端和服务器的相关参数,并了解如何使用Hive的内置函数和操作符。 指南还会提供如何优化Hive SQL查询性能的建议。Hive查询可能涉及大规模数据处理,因此如何设计和优化查询是非常关键的。指南中会介绍如何使用Hive的分区、索引和优化技巧来提高查询性能。 此外,指南还会涵盖Hive SQL中的数据导入和导出操作。Hive支持从不同的数据源导入和导出数据,指南将介绍如何使用Hive的LOAD、INSERT和EXPORT命令来实现这些操作。 最后,指南还会包含一些常见的Hive SQL开发技巧和实践经验。这些技巧可能包括如何处理复杂查询、如何使用Hive的UDF(用户自定义函数)以及如何利用Hive的可扩展性和容错性等特性。 总之,Hive SQL开发指南提供了关于Hive SQL编程的详细指导,帮助开发者掌握Hive SQL的语法、优化查询性能、实现数据导入导出等操作,并提供一些实际项目中的技巧和经验。这对于想要学习和使用Hive SQL的开发人员来说是一份非常有价值的参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值