关注公众号:大数据技术派,回复: 资料,领取1024G资料。 同比环比的计算 测试数据 1,2020-04-20,420 2,2020-04-04,800 3,2020-03-28,500 4,2020-03-13,100 5,2020-02-27,300 6,2020-01-07,450 7,2019-04-07,800 8,2019-03-15,1200 9,2019-02-17,200 10,2019-02-07,600 11,2019-01-13,300 CREATE TABLE ods_saleorder…

2022年2月18日 0条评论 223点热度 0人点赞 ikeguang 阅读全文

1、基本数据结构 对于Hive的String类型相当于数据库的varchar类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它可以存储2GB的字符数。 2、集合数据类型 Hive有三种复杂数据类型ARRAY、MAP和STRUCT。ARRAY和MAP与Java中的Array和Map类似,而STRUCT与C语言中的Struct类似,它封装了一个命名字段集合,复杂数据类型允许任意层次的嵌套。 案例实操 1)假设某表有如下一行,我们用JSON格式来表示其数据结构。在Hive下访问的格式为 { …

2022年1月23日 0条评论 199点热度 0人点赞 ikeguang 阅读全文

1、什么是Hive Hive是由Facebook开源用于解决海量结构化日志的数据统计。 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。 本质是:将HQL转化成MapReduce程序 1)Hive处理的数据存储在HDFS 2)Hive分析数据底层的实现是MapReduce 3)执行程序运行在Yarn上 2、Hive优缺点 优点: 1) 操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。 2) 避免了去写MapReduce,减少开发人员的学习成本…

2022年1月22日 0条评论 187点热度 0人点赞 ikeguang 阅读全文

关注公众号:大数据技术派,回复资料,领取1024G资料。 时间滑动计算 今天遇到一个需求大致是这样的,我们有一个业务涉及到用户打卡,用户可以一天多次打卡,我们希望计算出7天内打卡8次以上,且打卡时间分布在4天以上的时间,当然这只是个例子,我们具体解释一下这个需求 用户一天可以打卡多次,所以要求打卡必须分布在4天以上; 7天不是一个自然周,而是某一天和接下来的6天,也就是说时间是是滑动的,窗口大小是7步长是1,说白了就是窗口计算; 其实说到这里你就想到了窗口函数,虽然这是一个窗口;但是hive却没有相应的窗口函数可以…

2021年12月22日 0条评论 420点热度 0人点赞 ikeguang 阅读全文

其实这篇文章的起源是,我司有数据清洗时将ip转化为类似中国-湖北-武汉地区这种需求。由于ip服务商提供的Demo,只能在本地读取,我需要将ip库上传到HDFS分布式存储,每个计算节点再从HDFS下载到本地。 那么到底能不能直接从HDFS读取呢?跟我强哥讲了这件事后,不服输的他把肝儿都熬黑了,终于给出了解决方案。 关于外部依赖文件找不到的问题 其实我在上一篇的总结中也说过了你需要确定的上传的db 文件在那里,也就是你在hive 中调用add file之后 会出现添加后的文件路径或者使用list 命令来看一下 今天我们…

2021年12月14日 0条评论 324点热度 0人点赞 ikeguang 阅读全文

Json 格式的数据处理 Json 数据格式是我们比较常用的的一种数据格式,例如埋点数据、业务端的数据、前后端调用都采用的是这种数据格式,所以我们很有必要学习一下这种数据格式的处理方法 准备数据 cat json.data {"movie":"1193","rate":"5","timeStamp":"978300760","uid":"1"} {"…

2021年11月30日 0条评论 346点热度 0人点赞 ikeguang 阅读全文

强哥说他发现了财富密码,最近搞了一套股票算法,其中有一点涉及到股票连续涨停天数的计算方法,我们都知道股票周末是不开市的,这里有个断层,需要一点技巧。我问是不是时间序列,他说我瞎扯,我也知道自己是瞎扯。问他方法,他竟然不告诉我,这么多年的兄弟情谊算个屁。真当我没他聪明吗,哼! 靠人不如靠自己,我决定连夜研究一下在Hive里面计算最大连续天数的计算方法。 一、背景 在网站平台类业务需求中用户的「最大登陆天数」,需求比较普遍。 原始数据: u0001 2019-10-10 u0001 2019-10-11 u0001 2…

2021年11月4日 0条评论 290点热度 0人点赞 ikeguang 阅读全文

1、Fetch抓取 Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算。例如:SELECT * FROM employees;在这种情况下,Hive可以简单地读取employee对应的存储目录下的文件,然后输出查询结果到控制台。 在hive-default.xml.template文件中hive.fetch.task.conversion默认是more,老版本hive默认是minimal,该属性修改为more以后,在全局查找、字段查找、limit查找等都不走mapreduce。 2、本…

2021年10月23日 0条评论 329点热度 0人点赞 ikeguang 阅读全文

1、Hive表关联查询,如何解决数据倾斜的问题?(☆☆☆☆☆)   1)倾斜原因:map输出数据按key Hash的分配到reduce中,由于key分布不均匀、业务数据本身的特、建表时考虑不周、等原因造成的reduce 上的数据量差异过大。   (1)key分布不均匀;   (2)业务数据本身的特性;   (3)建表时考虑不周;   (4)某些SQL语句本身就有数据倾斜;   如何避免:对于key为空产生的数据倾斜,可以对其赋予一个随机值。   …

2021年10月23日 0条评论 550点热度 0人点赞 ikeguang 阅读全文

最近发现离线任务对一个增量Hive表的查询越来越慢,这引起了我的注意,我在cmd窗口手动执行count操作查询发现,速度确实很慢,才不到五千万的数据,居然需要300s,这显然是有问题的,我推测可能是有小文件。 我去hdfs目录查看了一下该目录: 发现确实有很多小文件,有480个小文件,我觉得我找到了问题所在,那么合并一下小文件吧: insert into test select * from table distribute by floor (rand()*5); 这里使用distribute by进行了一个小文…

2021年9月20日 0条评论 391点热度 0人点赞 ikeguang 阅读全文