e/warehouse/test4/* ./data/newdata
hdfs dfs -text /user/hive/warehouse/test5/* > ./data/newdata(可以对多种格式进行输出,压缩、序列化等)
hive -S -e "select * from test4" | grep yang > ./data/newdata
hive动态分区
分区不确定,需要从查询结果中查看。不需要为每个分区都使用alter table添加
使用动态分区需要配置的参数:
set hive.exec.dynamic.partition=true;//使用动态分区
set hive.exec.dynamic.partition.model=nonstrick;//分区有两种方式:一种是strick有限制分区,需要有一个静态分区,且放在最前面。一种就是nostrick无限制模式
set hive.exec.max.dynamic.partitions.pernode=10000;//每个节点生成动态分区的最大个数
set hive.exec.max.dynamic.partitions=100000;//生成动态分区的最大个数
set hive.exec.max.created.fiels=150000;//一个任务最多可以创建的文件数目
set dfs.datanode.max.xcievers=8192;//限定一次最多打开的文件数
insert overwrie table test7 partition(dt) select name,time as dt from test6;
表属性操作
修改表名:
alter table tableName rename to newName
修改列明:
alter table tableName change column old_col new_col newType comment '....' after colName(如果要为第一列则将aftercolName 改为first)
增加列:
alter table tableName add columns (c1 type comment '..',c2 type comment '...')
修改表属性
查看表属性
desc formatted tablename
这个是可以要修改的表的属性信息
Table Parameters:
COLUMN_STATS_ACCURATE false
last_modified_by colin
last_modified_time 1440154819
numFiles 0
numRows -1
rawDataSize -1
totalSize 0
transient_lastDdlTime 1440154819
修改属性:
alter table tableName set tblproerties('propertiesName'='.....');
比如修改comment
alter table tableName set tblproperties("comment"="xxxxx");
修改序列化信息:
无分区表
alter table tableName set serdepropertie('fields.delim'='\t');
有分区表
alter table tableName partition(dt='xxxx') set serdeproperties('fields.delim'='\t');
修改Location:
alter table tableName [partition(..)] set localtion 'path';
内部表外部表转换:
alter table tableName set tblproperties ('EXTERNAL'='TRUE|FALSE');必须大写EXTERNAL
|