首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

hive中一些适用的小技巧

2012-09-08 
hive中一些实用的小技巧1. 忽略错误,继续执行下面的语句,特别是在使用hive -f xxx.sql时候比较实用:????

hive中一些实用的小技巧

1. 忽略错误,继续执行下面的语句,特别是在使用hive -f "xxx.sql"时候比较实用:

?

??? hive --hiveconf hive.cli.errors.ignore=true -f "xxx.sql"

?

2. 虚拟列:

??? INPUT__FILE__NAME(输入文件的路径)

??? BLOCK__OFFSET__INSIDE__FILE(记录在文件中的偏移量)

?

??? select id,INPUT__FILE__NAME,BLOCK__OFFSET__INSIDE__FILE from lxw_test3 limit 10;

?

?

3. select结果中显示列名:

??? set hive.cli.print.header=true;

??? 注意在hive0.7中这个参数有bug,在设置为true之后使用use来切换database,就会触发这个bug

?

?

?

Exception in thread "main" java.lang.NullPointerException        at org.apache.hadoop.hive.cli.NewCliDriver.processCmd(NewCliDriver.java:178)        at org.apache.hadoop.hive.cli.NewCliDriver.processLine(NewCliDriver.java:243)        at org.apache.hadoop.hive.cli.NewCliDriver.main(NewCliDriver.java:469)        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)        at java.lang.reflect.Method.invoke(Method.java:597)        at org.apache.hadoop.util.RunJar.main(RunJar.java:186)

?

4. 判断一个字段是否全数字:

?

select mobile from woa_login_log_his where pt = '2012-01-10' and mobile rlike '^\\d+$' limit 50;
?

?

5. hive中最高精度的数据类型是double,只精确到小数点后16位,在做除法运算的时候要特别注意:

?

?

select ceil(28.0/6.999999999999999999999) from t_lxw_test1 limit 1;    结果为4select ceil(28.0/6.99999999999999) from t_lxw_test1 limit 1;           结果为5
?

?

6. 查看N天前的日期:

?

select from_unixtime(unix_timestamp('20111102','yyyyMMdd') - N*86400,'yyyyMMdd') from t_lxw_test1 limit 1;
?

?

7. 获取两个日期之间的天数/秒数/分钟数等等:

?

select ( unix_timestamp('2011-11-02','yyyy-MM-dd')-unix_timestamp('2011-11-01','yyyy-MM-dd') ) / 86400  from t_lxw_test limit 1;
?

?

?

不定期更新中。。。。。

?

?

热点排行