Hive中知识点
hive的最新学习资料:http://www.cnblogs.com/qingyunzong/p/8707885.html hive的参数设置大全:
https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄
一、hive的执行命令
1 hive -S :进入hive的静默模式,只显示查询结果,不显示执行过程; 2 hive -e ‘show tables’ :直接在操作系统命令下执行hive语句,不需要进入hive交互模式; 3 source /root/my.sql; :在hive模式下使用source命令执行.sql文件;
t1:创建普通表;
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。t2:在hdfs中的指定目录创建表;
t3:创建列分隔符为“,”的表;
t4:使用查询语句创建有数据的表;
t5:使用查询语句创建列以“,”分隔有数据的表;
来自https://blog.csdn.net/qq_40784783/article/details/79168896
desc formatted 表名; 显示表结构
describe database 数据库;显示数据库所在存储路径
二、hive的.hiverc文件
在${HIVE_HOME}/bin目录下建.hiverc文件,加入:
1 set hive.cli.print.header=true;
就可以显示表头。可以显示当前数据库:
1 set hive.cli.print.current.db=true;
使用本地模式运行语句
1 set hive.exec.mode.local.auto=true;
三、自定义的udf包
由于需要满足一个hive中不等值连接的需求,必须得自己手工写udf。以前也没有试过,所以今天尝试了下自己写了个ToLowerCase.java
由于没有用eclipse,所以直接用的是vim+javac搞定的。 在/home/dwdev/cajeep目录下,新建com/alibaba/hive/udf1 mkdir -p com/alibaba/hive/udf
新建java文件
1 vim com/alibaba/hive/udf
java内容如下:
1 package com.alibaba.hive.udf; 2 import org.apache.hadoop.hive.ql.exec.UDF; 3 4 public class ToLowerCase extends UDF{ 5 // 必须是 public,并且 evaluate 方法可以重载 6 public String evaluate(String field) { 7 String result = field.toLowerCase(); 8 return result; 9 } 10 }仍旧在当前目录下,执行javac的编译命令
1 javac -classpath /usr/local/hadoop-2.7.5/share/hadoop/common/lib/*.jar:/usr/local/hive/lib/hive-exec-2.3.2.jar ./ToLowerCase.java将对应的class文件进行打包
1 jar -cvf ToLowerCase.class进入hive,添加对应jar包,然后创建临时的函数
1 create temporary function tolowercase as 'com.alibaba.hive.udf.ToLowerCase'; 2 hive (default)> select tolowercase('HELLO'); 3 OK 4 _c0 5 hello
四、hive RegexSerDe使用详解
hive复杂格式数据的导入
更多精彩