hive命令1

hive命令

1.登录到hive
cd $HIVE_HOME
bin/hive
或者环境变量没问题的话,直接hive>

show databases;

show tables;

4.查看表列的定义
describe <表名>;

5.查看表具体的某一列
describe <列名>;

6.查看10条列的信息
select * from <列名> limit 10;

7.创建数据库(默认创建语法),其位置在hive.metastore.warehouse.dir
中定义的默认顶层目录下创建一个<库名>.db的目录
create database <库名>;

8.创建数据库(完整创建语法),with dbproperties可以将
任何自定义属性指派给数据库
create database if not exists <库名>
comment ‘stores all <库名> basket dara’
location ‘/opt/hive/<库名>.db’
with dbproperties (‘purpose’ = ‘texting’);

9.查看with dbproperties的属性
describe database extended <库名>;

10.更改数据库
alter database <库名>
set dbproperties (‘department’ = ‘sales’);

11.删除数据库,cascade的使用可选,其作用是
允许你删除数据库时将已有表一起删除
该命令将删除该库所有内部表和外部表
drop database <库名> cascade;

12.列出所有名字是s开头的数据库
show databases like ‘s*’;

13.基本数据类型
数值型–存放正负数字和浮点数
日期/时间型–存放时间值
字符型–将字符和数字存放在字符串中
布尔型–true或false
二进制型–二进制数的可变长数组

14.复杂数据类型
数组
map
结构体
联合体

15.数组
有序,下标从0开始,和java不同的是,不能在hive数组中定义最大元素值
例如,声明一个items数组来保存字符串值
items array<“bread”,“butter”,“happy”>
字符串的复合集有一个预定义的排序,因此可以从0访问
items[0] returns “bread”
items[2] returns “happy”

16.map
无序的键/值对集合,map的键可以用基本类型,map的值可以用基本和复杂数据类,map数据类型的元素需要使用键来访问,map数据类型的元素不能用下标访问
例如,声明一个包含商品项和数量的basket集合
basket map<‘string’,‘int’>
basket map<“eggs”,‘12’>
通过在map函数中指定商品项,可以打印该商品项的数量
basket(“eggs”) returns 12

17.结构体
是一个对象,其中含有多个字段,而这些字段可以是任何数据类型
例如,使用struct定义来声明客户的地址记录
addrss struct<houseno:string,street:string,city:string,
zipcode:int,state:string,country:string>

address <“17”,“main st”,“seattle”,98104,“wa”,“usa”>
可以使用点号来访问某一字段,使用address.zipcode来访问各个地址的邮政编码

18.联合体
联合体提供了一种方法,可以将不同数据类型的元素存储在同一字段的不同行中。
当字段的底层数据不同质的时候,这种方法很有用

例如,如果数据文件中存放了客户的联系信息,但是每条联系信息中包含一个或多个
电话号码,或者包含一个或多个电子邮件地址,那么可以声明一个contact变量来存储
信息
contact uniontype <int,array(int),string,array(string)> //这里用()代替<>,<>代码不显示

### Hive SQL 命令列表及用法教程 Hive 是一种基于 Hadoop 的数据仓库工具,它允许用户使用类似于 SQL 的语法来查询存储在分布式文件系统中的大规模数据集。以下是常用的 Hive SQL 命令及其具体用法: #### 1. 数据库管理 - **创建数据库** ```sql CREATE DATABASE IF NOT EXISTS database_name; ``` 创建一个新的数据库[^2]。 - **切换数据库** ```sql USE database_name; ``` 切换到指定的数据库。 - **查看当前数据库** ```sql SELECT current_database(); ``` - **删除数据库** ```sql DROP DATABASE IF EXISTS database_name CASCADE; ``` 删除数据库并级联删除其中的所有表。 --- #### 2. 表管理 - **创建表** ```sql CREATE TABLE table_name ( column1 datatype, column2 datatype, ... ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'; ``` 定义新表结构,并设置分隔符为制表符 `\t`。 - **外部表** 外部表不会移动原始数据位置。 ```sql CREATE EXTERNAL TABLE external_table_name ( column1 datatype, column2 datatype, ... ) LOCATION '/path/to/data/'; ``` - **分区表** 使用 `PARTITIONED BY` 关键字定义分区列。 ```sql CREATE TABLE partitioned_table_name ( column1 datatype, column2 datatype, ... ) PARTITIONED BY (partition_column datatype); ``` - **动态分区插入** 动态分区可以通过设置参数启用。 ```sql SET hive.exec.dynamic.partition=true; SET hive.exec.dynamic.partition.mode=nonstrict; INSERT INTO TABLE partitioned_table_name PARTITION(partition_column='value') SELECT * FROM source_table WHERE condition; ``` - **删除表** ```sql DROP TABLE IF EXISTS table_name; ``` --- #### 3. 查询操作 - **基本查询** ```sql SELECT column1, column2 FROM table_name WHERE condition LIMIT n; ``` - **聚合函数** 支持常见的聚合函数如 `COUNT`, `SUM`, `AVG`, `MIN`, 和 `MAX`。 ```sql SELECT COUNT(*) AS total_count FROM table_name; ``` - **GROUP BY** 对结果按某一列或多列进行分组。 ```sql SELECT category, SUM(value) AS sum_value FROM table_name GROUP BY category; ``` - **JOIN 操作** 不支持等值连接,推荐使用 `LEFT JOIN`, `RIGHT JOIN`, 或 `INNER JOIN` 替代。 ```sql SELECT t1.column1, t2.column2 FROM table1 t1 LEFT JOIN table2 t2 ON t1.key = t2.key; ``` --- #### 4. 特殊功能 - **复杂数据类型** Hive 提供了多种复杂的字段类型,例如 `STRUCT`, `ARRAY`, 和 `MAP`。 ```sql -- ARRAY 类型 SELECT explode(array_column) FROM table_name; -- MAP 类型 SELECT map_key['key'] FROM table_name; ``` - **内置函数** Hive 包含许多用于字符串处理、日期计算等功能的强大函数。 ```sql -- 字符串拼接 SELECT concat_ws(',', column1, column2) FROM table_name; -- 聚合成数组 SELECT collect_list(column1) FROM table_name; ``` --- #### 5. 配置优化 为了提高性能,可以在执行前调整某些配置项: ```sql SET hive.exec.reducers.bytes.per.reducer=256000000; -- 设置每个 Reducer 的最大输入大小 SET hive.tez.container.size=4096; -- 如果使用 Tez 引擎,则可增加容器内存 ``` --- #### 6. 执行脚本 当需要批量运行多个 HiveQL 命令时,可以将其保存在一个 `.hql` 文件中并通过 CLI 运行: ```bash hive -f script.hql > output_file.log ``` 注意:命令末尾需确保双引号 `"your SQL"`、重定向符号 `>` 及目标文件名在同一行,否则可能导致无法正常生成结果文件[^1]。 --- ### 示例代码 以下是一个完整的 HiveSQL 示例,展示如何加载数据并进行简单分析: ```sql -- 创建表 CREATE TABLE sales_data ( id INT, product STRING, amount DOUBLE ); -- 加载数据 LOAD DATA INPATH '/user/hive/warehouse/sales.csv' INTO TABLE sales_data; -- 计算总销售额 SELECT product, SUM(amount) AS total_sales FROM sales_data GROUP BY product; ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值