hive
Devin Li
这个作者很懒,什么都没留下…
展开
-
构造笛卡尔积
1.join关联select T1.*, T2.* from table1 T1 join table2 T2 where 1=1;Hive的Strict模式下不能用这种语法,因为这样会产生笛卡尔集,而这种模式禁止产生笛卡尔集。需要先用set hive.mapred.mode=nonstrict;2.笛卡尔积关联(CROSS JOIN)select * from devi...原创 2018-11-12 16:38:51 · 388 阅读 · 0 评论 -
hive获取分区表最新分区的数据
分区表:devin 分区字段:op_day(8位格式日期:20181112)select t2.*from(select max(op_day) as latest_op_day from devin) t1join devin t2ont1.latest_op_day = t2.op_day;原创 2018-11-12 16:40:51 · 10218 阅读 · 0 评论 -
8位格式日期(20181112)加减天数简单运算
场景:要求8位格式日期+8天后仍显示8位格式日期问题点:date_add()函数不支持8位格式日期,只识别10位格式日期(%Y-%m-%d)方法一:用unix_timestamp(string date, string pattern)转换成时间戳后再用from_unixtime(bigint unixtime, string format)转换成10位格式日期后用date_add()进行加减...原创 2018-11-12 16:46:19 · 2784 阅读 · 0 评论 -
sql查询结果赋值给shell变量
场景:报表需求设计有时需要做配置表并配置生效时间,生效时间需要拿出来和当前时间做对比处理。举例:配置表:devin 生效时间字段:effective_dateeffective_date = hive -e "use ${datebase}; set hive.cil.print.header = false; select effective_date from devin limit 1;...原创 2018-11-12 16:48:27 · 11737 阅读 · 0 评论 -
使用regexp_extract、regexp_replace函数过滤特殊字符时,不同的执行情境下(hive -e;hive -f),正则表达式的内容有变化
在使用regexp_extract、regexp_replace函数过滤特殊字符时,发现不同的执行情境下(hive -e;hive -f),正则表达式的内容有变化,表现为是否要添加"\"进行转义,hive -e "SQL"方式需要进行转义。处理方案:hive -e "SQL"方式执行:hive -e "select regexp_replace(msg_context,'[\\^\\...原创 2018-11-12 16:53:04 · 7940 阅读 · 0 评论 -
通过sqoop将大数据平台hive表中的数据推送到Mysql中时,如果在客户端机器直接执行脚本,会报连接超时错误
通过sqoop将大数据平台hive表中的数据推送到Mysql中时,如果在客户端机器直接执行脚本,会报连接超时错误,原因:客户端和Mysql数据库的防火墙不通。解决方案:不能再前置机直接执行,将脚本放在oozie作业上执行。...原创 2018-11-12 16:54:56 · 764 阅读 · 0 评论 -
shell获取系统当前时间、本月1日、下月1日、本月月底、上月月底、上月同期日期
在实际开发过程中会用到一些特定时间,请注意其中下月1日和上月同期日期无法用shell命令直接获取,需做判断。1.获取系统当前时间today=`date +%Y%m%d`2.本月1日firstday=`date -d "${today}" +%Y%m01`3.本月月份month=`date -d "${today}" +%m`4.上月月份l_month=`date -d "${l_l...原创 2019-02-28 18:43:31 · 9450 阅读 · 0 评论 -
hive行转列和列转行
创建测试表:create table stu1( name string comment '姓名',chinese string comment '语文',math string comment '数学',english string comment '英语')comment '学生成绩表1' row format delimited...原创 2019-03-19 18:13:10 · 189 阅读 · 0 评论 -
Map和Reduce 个数如何确定
基于org.apache.hadoop.mapreduce包新版API一、Map1、Map个数的确定map的个数等于split的个数。我们知道,mapreduce在处理大文件的时候,会根据一定的规则,把大文件划分成多个,这样能够提高map的并行度。划分出来的就是InputSplit,每个map处理一个InputSplit.因此,有多少个InputSplit,就有多少个map数。2、谁负责...原创 2019-07-23 15:39:15 · 3412 阅读 · 0 评论