HIVE命令

本文详细介绍了Hive的数据类型如KV类型的使用,以及创建数据库、显示表、建表、导入数据等基本操作。此外,还涉及到了Hive在local和yarn模式间的切换,以及关闭向量化执行优化的配置。对于Hive初学者,这些内容提供了全面的操作指南。

HIVE命令:

KV数据类型:

map<string,string>

建库:

create database 库名;

展示某个库中的表:

show tables from 库名;

建表:

drop table if exists 表名;

create (external) table (库名.)表名(

字段  数据类型

...

)

partition by (字段  数据类型)

row format delimited fields terminated by '分隔符'     (按照分隔符切分)

stored as 文件类型     (按什么文件类型存储)

;

导入数据:

load data (local) inpath '数据所在目录' into table 表名 partition(字段名='字段值');

设置hive跑local/yarn模式:

set mapreduce.framework.name=local/yarn

关闭hive的向量化引擎优化开关:

set hive.vectorized.execution.enabled=false;

### 常用Hive命令列表及使用示例 #### 1. **创建表** Hive支持创建内部表(管理表)和外部表。创建表的基本语法如下: ```sql -- 创建内部表 CREATE TABLE student ( id INT, name STRING, age INT ); -- 创建外部表 CREATE EXTERNAL TABLE IF NOT EXISTS logs ( id STRING, event STRING ) LOCATION '/user/hive/logs'; ``` - 外部表在删除时不会删除数据文件,仅删除元数据[^3]。 #### 2. **删除表** 删除表的操作会移除表的元数据以及表中的数据(如果是管理表)。 ```sql -- 删除内部表 DROP TABLE IF EXISTS student; -- 删除外部表(仅删除元数据) DROP TABLE IF EXISTS logs; ``` #### 3. **加载数据** Hive支持从本地文件系统或HDFS加载数据到表中。 ```sql -- 从本地加载数据到表中 LOAD DATA LOCAL INPATH '/path/to/student.csv' INTO TABLE student; -- 从HDFS加载数据到表中 LOAD DATA INPATH '/user/hive/input/student.csv' INTO TABLE student; ``` #### 4. **导出数据** Hive支持将表数据导出到HDFS路径中。 ```sql -- 导出数据到HDFS EXPORT TABLE student TO '/user/hive/warehouse/export/student'; ``` #### 5. **导入数据** Hive支持从HDFS路径导入数据到表中,前提是已经通过`EXPORT`导出数据。 ```sql -- 导入数据到指定Hive表中 IMPORT TABLE student2 FROM '/user/hive/warehouse/export/student'; ``` #### 6. **查询操作** Hive支持类SQL的查询语法,包括过滤、聚合、连接等操作。 ```sql -- 查询所有数据 SELECT * FROM student; -- 条件查询 SELECT * FROM student WHERE age > 20; -- 聚合查询 SELECT age, COUNT(*) AS count FROM student GROUP BY age; -- 连接查询 SELECT a.id, a.name, b.score FROM student a JOIN scores b ON a.id = b.student_id; ``` #### 7. **修改表结构** Hive支持对表结构进行修改,例如添加列或修改列名。 ```sql -- 添加列 ALTER TABLE student ADD COLUMNS (email STRING); -- 修改列名 ALTER TABLE student CHANGE COLUMN name full_name STRING; ``` #### 8. **分区表操作** Hive支持分区表,用于提高查询性能。 ```sql -- 创建分区表 CREATE TABLE sales ( product_id INT, amount DOUBLE ) PARTITIONED BY (country STRING); -- 加载数据到指定分区 INSERT INTO TABLE sales PARTITION (country='US') SELECT product_id, amount FROM sales_data WHERE country = 'US'; ``` #### 9. **Hive Shell命令** Hive Shell支持一些常用命令,如查看表结构、显示数据库等。 ```bash # 查看表结构 DESCRIBE student; # 显示所有表 SHOW TABLES; # 显示数据库 SHOW DATABASES; # 切换数据库 USE mydatabase; ``` #### 10. **HiveServer2连接** HiveServer2允许通过JDBC或Beeline连接Hive服务。 ```bash # 启动HiveServer2 hive --service hiveserver2 # 使用Beeline连接HiveServer2 beeline -u jdbc:hive2://localhost:10000 -n username ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值