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;