hive常用操作

1. 文件导入到hdfs

从本地/tmp/path下拷贝文件上传到hive表test中的CHINA分区中。

LOAD DATA LOCAL INPATH '/tmp/path/' OVERWRITE  INTO TABLE test PARTITION (country='CHINA')

2. hive -f 带参数

⭐️注意⭐️:使用hive -e 查询时,查询结果是写入不了hive表中的,必须使用hive -f !!!!!!!

带参数的脚本,script.q为sql语句,每个变量都需要通过--hivevar添加

hive -f script.q --hiveconf params_dt=20180418 --hiveconf tmp_table=tmp_table

script.q脚本中使用变量如下:

insert into table dw_dm.target_table partition(dim,period)
select  field1,field2,dim,period 
from ${hiveconf:tmp_table}
where dt = '${hiveconf:params_dt}';

 3. hive中查看function

show functions;   //查看所有函数

desc function extended data_format;   //查看函数具体定义

4. 日期转换

方法1: from_unixtime+ unix_timestamp
--20171205转成2017-12-05 
select from_unixtime(unix_timestamp('20171205','yyyymmdd'),'yyyy-mm-dd') from dual;

--2017-12-05转成20171205
select from_unixtime(unix_timestamp('2017-12-05','yyyy-mm-dd'),'yyyymmdd') from dual;

方法2: substr + concat
--20171205转成2017-12-05 
select concat(substr('20171205',1,4),'-',substr('20171205',5,2),'-',substr('20171205',7,2)) from dual;

--2017-12-05转成20171205
select concat(substr('2017-12-05',1,4),substr('2017-12-05',6,2),substr('2017-12-05',9,2)) from dual;

 

5. hive修改表名

alter table xxx rename to xxx2;

 

6. hive修改表属性

外部表和内部表的属性修改:

alter table db.table_name set tblproperties('EXTERNAL'='false');

 

7. hive新增字段

 

posted @ 2018-04-02 15:46  硅谷工具人  阅读(340)  评论(0编辑  收藏  举报
成功之道,在于每个人生阶段都要有不同的目标,并且通过努力实现自己的目标,毕竟人生不过百年! 所有奋斗的意义在于为个人目标实现和提升家庭幸福,同时能推进社会进步和国家目标! 正如古人讲的正心诚意格物致知,修身齐家治国平天下。