
Hive
文章平均质量分 73
qq_43193797
github:https://github.com/yanjie666
展开
-
统计指定路径hive表存量
etldate=(20201111)etlhour=(00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23)sum=0for date in ${etldate[@]}do for hour in ${etlhour[@]} do count=`hadoop fs -ls /user/hive/databases/mydata/data_date=$date$hour | awk -F ' ' '原创 2020-11-23 13:53:18 · 179 阅读 · 0 评论 -
Hive的row_number() over(partition by 字段) 字段过长导致统计误差
有如下统计的hql:select *, row_number() over(partition by stay_time_concat order by time asc) as stay_time_rnfrom ( select *, row_number() over(partition by event_id) as event_id_rn, row_number() over(partition by concat(j_client_id,buy_adslot_id,event_ty原创 2020-07-31 14:33:40 · 905 阅读 · 0 评论 -
验证flume采集日志延迟
select data_date ,hour ,count(*)from (select data_date ,from_unixtime(floor(rtime/1000),'yyyyMMddHH') as hourfrom tmp.table_tmpwhere data_date >= 2019062800and data_...原创 2019-07-17 13:15:11 · 660 阅读 · 0 评论 -
Hive拉链表的设计
拉链表用户表中的数据每日既有可能新增,也有可能修改,但修改频率并不高,属于缓慢变化维度,此处采用拉链表存储用户维度数据。1)拉链表制作过程步骤0:初始化拉链表(首次独立执行)(1)建立拉链表hive (gmall)>drop table if exists dwd_dim_user_info_his;create external table dwd_dim_user_info_his(id string COMMENT ‘用户id’,name string COMMENT ‘姓原创 2020-05-09 17:51:35 · 662 阅读 · 0 评论 -
shell编写除了某几个字段,选择全部字段的脚本
代码如下:除了rn字段和data_date字段,选择全部字段#数据加载进表function loadData() { echo "start loadData" columns='`(rn|data_date)?+.+`' beeline -n datasrv -e " set hive.support.quoted.identifiers=None; insert...原创 2020-04-26 16:43:21 · 317 阅读 · 0 评论 -
hive以半小时为维度进行统计的需求
从2020/04/22日开始,往延3天,按req_id关联,统计曝光事件与点击事件之间的时间间隔分布情况,按30分钟为粒度,数据结果如下:时间间隔(单位分钟) 占比情况(%) 备注30 8060 9590 96120 98150 99...原创 2020-04-24 20:43:39 · 2085 阅读 · 1 评论 -
hive执行出现Error: Error while processing statement: FAILED: Execution Error, return code 2 from org.apa
Error: Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask (state=08S01,code=2)set hive.exec.dynamic.partition.mode=nonstrict;s...原创 2020-04-06 08:48:17 · 6339 阅读 · 0 评论 -
Kylin连接mysql出现慢查询问题
这个问题HIVE METASTORE之前也遇到过,实际通过修改METASTORE连接为随机连接,保证连接池不空闲来回避这个问题了。之前定位数据库那边什么错误也没有,hive metastore改连接池参数也不起作用。...原创 2020-03-25 13:36:16 · 375 阅读 · 0 评论 -
hive表中使用testfile格式保存时,常用的字段分隔符
public static final String SPLIT_SEPATATOR = "\u0001"; public static final String TAB_SPLIT_SEPARATOR = "\t"; public static final String COMMA_SPLIT_SEPARATOR = ","; public static final String...原创 2019-12-28 16:45:17 · 762 阅读 · 0 评论 -
Hive使用Spark on Yarn作为执行引擎
Hive从1.1之后,支持使用Spark作为执行引擎,配置使用Spark On Yarn作为Hive的执行引擎,首先需要注意以下两个问题:Hive的版本和Spark的版本要匹配;具体来说,你使用的Hive版本编译时候用的哪个版本的Spark,那么就需要使用相同版本的Spark,可以在Hive的pom.xml中查看spark.version来确定;Hive rootpom.xml...转载 2019-12-11 17:42:41 · 1415 阅读 · 0 评论 -
scala项目中maven打包报错java.lang.StackOverflowError解决方法
在maven项目打包的时候报错,java.lang.StackOverflowError解决方法在setting->maven->runner->VM Options中添加 -Xss4096k 如下图所示再次点击打包就可以了,如果还是报错的话,可以尝试把这个值在增大一点.此外,需要在pom.xml配置以下参数 <configurati...原创 2019-11-28 21:03:31 · 1795 阅读 · 0 评论 -
Hive解决数据倾斜实战方法
一、数据清洗key的发现:1、如何发现某个key值偏多: 步骤一:通过查询的方式创建表create table tmp.tableA as select id,count(*) as num from tableA group by id;步骤二:进行排序select id,num from tmp.tableA order by num desc...原创 2019-11-26 19:34:27 · 392 阅读 · 0 评论 -
hive的集合类型Array、Map和Struct及相应的创建、插入、查询操作
hive的集合数据类型包括三种,分别是Array、Map和Struct下面分别介绍一下关于集合类型的创建表、插入数据以及查询的方法1、创建包含有集合数据类型的hive表create table test_set(idINT,nameSTRING,hobbyARRAY<STRING>, //array中元素为String类型friendMAP<...转载 2019-11-04 15:08:15 · 1312 阅读 · 0 评论 -
spark报错Caused by: java.lang.RuntimeException: java.lang.Long is not a valid external type for schema
注意hive中的数据类型与spark解析后的类型一致def getResponseEncoder: Encoder[Row] = { val schema = StructType( StructField("price", StringType, nullable = true) :: StructField("app_bundle_id", Strin...原创 2019-10-17 15:03:32 · 1703 阅读 · 0 评论 -
hive 参数调优
转载:https://blog.csdn.net/renzhixin1314/article/details/70496325Map Reduce数量相关数据分片大小 (分片的数量决定map的数量) 计算公式: splitSize = Math.max(minSize, Math.min(maxSize, blockSize))set mapreduce.input.file...转载 2019-06-15 17:22:44 · 247 阅读 · 0 评论 -
Hive的静态分区和动态分区
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl/p/6831884.html转载请注明出处虽然之前已经用过很多次hive的分区表,但是还是找时间快速回顾总结一下加深理解.举个栗子,基本需求就是Hive有一张非常详细的原子数据表original_device_open,而且还在不断随着时间增长,那么我需要给它进行分区,为什么要分区?因为我想缩小查询范...转载 2019-06-15 16:44:59 · 476 阅读 · 0 评论 -
Hive之企业级参数优化
3. 使用VectorizationVectorized查询执行会提高操作性能,例如scans、aggregations、filters和joins,通过一次执行1024行提高性能。该属性在hive 0.13版本引入,该属性能够提高查询执行的时间。通过设置以下两个参数:[code language=”SQL”]set hive.vectorized.execution.enab...原创 2019-06-15 16:31:42 · 225 阅读 · 0 评论 -
Java中枚举类型Enum的一种使用方式
Java中枚举类型Enum的一种使用方式public enum Status { SCUUESS("1", "成功"), FAILED("2", "失败"); private String value; private String desc; public String getValue() { return value; }...原创 2019-06-19 13:20:33 · 314 阅读 · 0 评论 -
[Hive]Hive分区表新增字段
hive (default)> desc pms.test_cross_sale_path;OKcol_name data_type commentpath_id string visit_track_id string visit_product_id bigint visit_category_id bigint visit_brand_id...转载 2019-06-13 17:57:12 · 2148 阅读 · 0 评论 -
Hive中rlike,like,not like区别与使用详解
1.like的使用详解1.语法规则:1.A like B只能使用简单匹配符号_%,”_”表示任意单个字符,字符”%”表示任意数量的字符2.like的匹配是按字符逐一匹配的,使用B从A的第一个字符开始匹配,所以即使有一个字符不同都不行。2.操作类型: strings3.使用描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合表达式B 的正...转载 2019-06-05 15:42:34 · 11398 阅读 · 0 评论 -
hive的数据库、表、分区、分桶相关概念
hive的数据库、表、分区、分桶相关概念 hive的所有数据存储基于hadoop的HDFS,hive没有专门的数据存储格式(可支持Text,SequenceFile,ParquetFile,RCFILE等) 在创建表时,指定Hive 数据的列分隔符和行分隔符,Hive 就可以解析数据 存储结构主要包括:数据库、文件、表、视图、索引 Hive 中包含以下数据模型:...原创 2019-05-31 11:27:44 · 652 阅读 · 0 评论 -
hive中的left semi join替换sql中的in操作
LEFT SEMI JOIN 是 IN/EXISTS 子查询的一种更高效的实现。Hive 当前没有实现 IN/EXISTS 子查询,所以你可以用 LEFT SEMI JOIN 重写你的子查询语句。LEFT SEMI JOIN 的限制是, JOIN 子句中右边的表只能在ON 子句中设置过滤条件,在 WHERE 子句、SELECT 子句或其他地方过滤都不行。SELE...原创 2019-04-14 17:05:18 · 327 阅读 · 0 评论 -
hive实现将一张分区表拷贝到另一张分区表
beeline -e " set hive.exec.dynamic.partition=true; set hive.exec.dynamic.partition.mode=nonstrict; insert overwrite table ${Tar} partition(data_date,channel) select * from ${Tmp};...原创 2019-08-21 14:05:00 · 4484 阅读 · 0 评论 -
Hive的left join、left outer join和left semi join三者的区别
Hive的Join的文档说明地址:https://cwiki.apache.org/confluence/display/Hive/LanguageManual%2BJoins以下为两个测试数据表建表语句:use test;DROP TABLE IF EXISTS table1;create table table1(student_nobigint...转载 2019-04-14 17:03:47 · 5316 阅读 · 0 评论 -
hive查看创建表语句
hive查看创建表语句 show create table table1;原创 2019-06-10 19:20:49 · 11160 阅读 · 0 评论 -
Hive 调优总结
一、查看执行计划explain extended hql;可以看到扫描数据的hdfs路径二、hive表优化分区(不同文件夹):动态分区开启:set hive.exec.dynamic.partition=true;set hive.exec.dynamic.partition.mode=nonstrict;默认值:strict 描述:strict是避免全分区字段是动态...转载 2019-06-16 15:04:59 · 161 阅读 · 0 评论 -
任务运行失败,azkaban仍然显示success的问题解决
在shell脚本中加上判断语句if [[ $? -ne 0 ]];then exit 255fi原创 2019-06-18 10:11:49 · 2146 阅读 · 2 评论 -
HIve中 Group By语句
GROUP BY语句通常会和聚合函数一起使用,按照一个或者多个列队结果进行分组,然后对每个组执行聚合操作。案例实操: (1)计算emp表每个部门的平均工资hive (default)> select t.deptno, avg(t.sal) avg_sal from emp t group by t.deptno; (2)计算emp每个部门中每个岗位的...原创 2019-01-13 15:17:01 · 944 阅读 · 0 评论 -
hive中如何查询除了其中某个字段剩余所有字段
想要将hive分区表中的某个分区复制到新的分区中,使用如下sql语句insert overwrite table zcfw_sda.sda04_core_request_base_ratio_ifrs partition (etl_tx_dt = 20190327)select *from zcfw_sda.sda04_core_request_base_ratio_ifrswhere...转载 2019-09-02 10:15:49 · 2477 阅读 · 0 评论 -
Hive中UDF、UDTF、UDAF
Hive自定义函数包括三种UDF、UDAF、UDTF UDF(User-Defined-Function)一进一出 UDAF(User-DefinedAggregationFuncation)聚集函数,多进一出。Count/max/min UDTF(User-DefinedTable-GeneratingFunctions)一进多出,如lateralview...原创 2019-08-12 20:30:53 · 300 阅读 · 0 评论 -
Hive中获取某个目录下面的所有子目录
#完整分区(type=tmp1,tmp2)function checktable(){ typeArr=("") i=0 for t in `hadoop fs -ls ${path}${date} | grep 'hdfs' |awk -F 'type=' '{print $2}'` do typeArr[i]=${t} ((i=...原创 2019-08-21 15:16:53 · 829 阅读 · 0 评论 -
在shell脚本中判断Hive一张表是否被锁住
desc=`beeline -e "show locks ad.imei_tags_mapping extended;"` str="LOCK_QUERYID" if [[ ${desc} =~ $str ]];then echo "Table LOCK_QUERYID,waiting for next time!" els...原创 2019-08-21 15:01:45 · 945 阅读 · 1 评论 -
Hive建立表并加载分区后,查询数据报错的问题
如图,hive报以下错误Error: java.io.IOException: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.UnsupportedOperationException: Cannot inspect org.apache.hadoop.io.LongWritable (state=,code=0)...原创 2019-08-14 10:34:41 · 1802 阅读 · 0 评论 -
简单验证俩张表的数据是否一致
select a.*from (select * from tmp.ctr where data_date=2019080102) ajoin(select * from tmp.ctr_b where data_date=2019080102) bon a.aid=b.aidand a.price_stgy_id=b.price_stgy_idand a.bid=b.bidand ...原创 2019-08-06 11:10:22 · 757 阅读 · 0 评论 -
Hive的锁
show locks <table_name> extended; eg:show locks tmp.ad_requestextended;原创 2019-08-01 17:09:27 · 295 阅读 · 0 评论 -
Hive按照某个维度对数据进行去重的俩中方式
一、使用group byeg:selectreq_id ,max(rtime) as click_rtime from tmp where data_date >= %(data_start_date)s and data_date <= %(data_date_cutoff)sgroup by req_id二、使用窗口函数...原创 2019-07-31 17:46:51 · 1626 阅读 · 0 评论 -
笔试题
思路:先统计1,2,3月数据selectuid,sum(if( date_format(otime,'yyyy-MM' )='2017-01',1,0 )) month1count,sum(if( date_format(otime,'yyyy-MM' )='2017-02',1,0 )) month2count,sum(if( date_format(otime,'y...原创 2019-04-10 11:15:06 · 145 阅读 · 0 评论 -
Hive之SQL练习
datediff函数regexp_replace()substring函数准备介绍:dateddiff:求两个时间的差值regexp_replace:替换符号to_date:将字符串转换成时间date_sub:求一个时间与数字之间的差值round:四舍五入floor:向下取整ceil:向上取整题目:背景说明:以下表记录了...原创 2019-03-17 21:08:42 · 437 阅读 · 0 评论 -
Hive之Rank函数
1.函数说明RANK() 排序相同时会重复,总数不会变DENSE_RANK() 排序相同时会重复,总数会减少ROW_NUMBER() 会根据顺序计算First_VALUE()取当前窗口第一个值LAST_VALUE()取当前窗口最后一个值2.数据准备表6-7 数据准备 name subject score ...原创 2019-01-18 19:41:04 · 629 阅读 · 0 评论 -
Hive常见的存储格式文件比较
一 列式存储和行式存储首先我们看一下一张表的存储格式1.1 行式存储1.2 列式存储1.3列式存储和行式存储的比较行式存储优点:#相关的数据是保存在一起,比较符合面向对象的思维,因为一行数据就是一条记录#这种存储格式比较方便进行INSERT/UPDATE操作缺点:#如果查询只涉及某几个列,它会把整行数据都读取出来,不能跳过不必要的列读取。当然数据...转载 2019-01-13 22:07:50 · 478 阅读 · 0 评论