1.udf快速入手:
a,小程序开发
// 科学计数法 换成正常2位小数
public class changeNumUDF extends UDF {
public String evaluate(double number){
String str=new DecimalFormat("0.00").format(number);//String str1=new DecimalFormat("0.00").format(7.150391349499989E8);
return str;
}
b.打jar 上传客户机 执行
add jar /data/temp/changenum.jar;
create temporary function fun_changeNum as 'com.agd.udf.changeNumUDF ';
c.验证 hive > select fun_changeNum(7.150391349499989E8);
2.hive碰到特殊字符导致数据与字段错位,需要清洗。
regexp_replace(data,'\n|\r|\t','')
hive > select regexp_replace("\nk \t kk \r kkk",'\n|\r|\t','');
3.hive经常做增量,取昨天时间
取时间为前一天
用 where TO_DATE(date) = DATE_SUB(from_unixtime(unix_timestamp(),'yyyy-MM-dd'), 1)
data为原表时间字段 ,后面为当前天的前1天,1可以变化 指前几天