Hive基本操作(二)
2017-08-19 10:35
423 查看
Alter Table
1 Add Partitions
ALTER TABLE table_name ADD [IF NOT EXISTS] partition_spec [ LOCATION 'location1' ] partition_spec [ LOCATION 'location2' ] ... partition_spec: : PARTITION (partition_col = partition_col_value, partition_col = partiton_col_value, ...) Eg: ALTER TABLE c02_clickstat_fatdt1 ADD PARTITION (dt='20101202') location '/user/hive/warehouse/c02_clickstat_fatdt1/part20101202' PARTITION (dt='20101203') location '/user/hive/warehouse/c02_clickstat_fatdt1/part20101203';
2 Drop Partitions
ALTER TABLE table_name DROP partition_spec, partition_spec,... ALTER TABLE c02_clickstat_fatdt1 DROP PARTITION(dt='20101202');
3 Rename Table
ALTER TABLE table_name RENAME TO new_table_name 这个命令可以让用户为表更名。数据所在的位置和分区名并不改变。换而言之,老的表名并未“释放”,对老表的更改会改变新表的数据。
4 Change Column
ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_namecolumn_type [COMMENT col_comment] [FIRST|AFTER column_name] 这个命令可以允许改变列名、数据类型、注释、列位置或者它们的任意组合
5 Add/ Replace Columns
ALTER TABLE table_name ADD|REPLACE COLUMNS (col_name data_type[COMMENT col_comment], ...) ADD是代表新增一字段,字段位置在所有列后面(partition列前);REPLACE则是表示替换表中所有字段。
Create View
CREATE VIEW [IF NOT EXISTS] view_name [ (column_name [COMMENT column_comment], ...) ] [COMMENT view_comment] [TBLPROPERTIES (property_name = property_value, ...)] AS SELECT ...
Show
查看表名SHOWTABLES;
查看表名,部分匹配
SHOWTABLES 'page.*';
SHOWTABLES '.*view';
查看某表的所有Partition,如果没有就报错:
SHOWPARTITIONS page_view;
查看某表结构:
DESCRIBE invites;
查看分区内容
SELECTa.foo FROM invites a WHERE a.ds ='2008-08-15';
查看有限行内容,同Greenplum,用limit关键词
SELECTa.foo FROM invites a limit 3;
查看表分区定义
DESCRIBE EXTENDED page_view PARTITION (ds='2008-08-08');
Load
HIVE装载数据没有做任何转换加载到表中的数据只是进入相应的配置单元表的位置移动数据文件。纯加载操作复制/移动操作。1 语法
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTOTABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
Load 操作只是单纯的复制/移动操作,将数据文件移动到 Hive 表对应的位置。
filepath 可以是:
相对路径,例如:project/data1
绝对路径,例如: /user/hive/project/data1
包含模式的完整 URI,例如:hdfs://namenode:9000/user/hive/project/data1
加载的目标可以是一个表或者分区。如果表包含分区,必须指定每一个分区的分区名。
filepath 可以引用一个文件(这种情况下,Hive 会将文件移动到表所对应的目录中)或者是一个目录(在这种情况下,Hive 会将目录中的所有文件移动至表所对应的目录中)。
如果指定了 LOCAL,那么:
load 命令会去查找本地文件系统中的 filepath。如果发现是相对路径,则路径会被解释为相对于当前用户的当前路径。用户也可以为本地文件指定一个完整的 URI,比如:file:///user/hive/project/data1.
load 命令会将 filepath 中的文件复制到目标文件系统中。目标文件系统由表的位置属性决定。被复制的数据文件移动到表的数据对应的位置。
如果没有指定 LOCAL 关键字,如果 filepath 指向的是一个完整的 URI,hive 会直接使用这个 URI。 否则:
如果没有指定 schema 或者 authority,Hive 会使用在 hadoop 配置文件中定义的 schema 和 authority,fs.default.name 指定了 Namenode 的 URI。
如果路径不是绝对的,Hive 相对于 /user/ 进行解释。
Hive 会将 filepath 中指定的文件内容移动到 table (或者 partition)所指定的路径中。
如果使用了 OVERWRITE 关键字,则目标表(或者分区)中的内容(如果有)会被删除,然后再将 filepath 指向的文件/目录中的内容添加到表/分区中。
如果目标表(分区)已经有一个文件,并且文件名和 filepath 中的文件名冲突,那么现有的文件会被新文件所替代。
从本地导入数据到表格并追加原表
LOAD DATA LOCAL INPATH `/tmp/pv_2008-06-08_us.txt` INTO TABLE c02 PARTITION (date='2008-06-08', country='US')
从本地导入数据到表格并追加记录
LOAD DATA LOCAL INPATH './examples/files/kv1.txt' INTO TABLE pokes;
从hdfs导入数据到表格并覆盖原表
LOAD DATA INPATH '/user/admin/SqlldrDat/CnClickstat/20101101/18/clickstat_gp_fatdt0/0' INTO table c02_clickstat_fatdt1 OVERWRITE PARTITION (dt='20101201');
相关文章推荐
- hive基本的操作语句(实例简单易懂,create table XX as select XX)
- Hive基本操作
- Hive基本操作(三)
- HiveSQL解析原理:包括SQL转化为MapReduce过程及MapReduce如何实现基本SQL操作
- Hive Shell 基本操作
- hive基本的操作语句(实例简单易懂,create table XX as select XX)
- hive的初识(基本操作)
- hadoop hive 基本操作命令
- Hive的HQL的基本操作
- hive基本操作
- hive的库及表的基本操作
- Hive总结(二)hive基本操作
- HIVE学习笔记:Hive CLI基本操作
- 深入浅出学Hive——Hive Shell基本操作
- hadoop hive基本操作
- hive安装配置及连接JDBC基本操作
- Hive的基本操作
- Hive基础(2): 数据类型、数据库、表、字段、交互式查询的基本操作
- hive基本操作
- hive的基本操作