自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

鸭梨的博客

输出每一天

  • 博客(78)
  • 收藏
  • 关注

原创 Hive利用增量表更新全量表

需求要求将只存在于u1而不存在于u2的的ID记录全部插入u2中,并用u1中的记录更新u2中相同ID的记录。不要被题目误导了,这个应该先更新数据,然后再插入,不要被题目的顺序误导数据源drop table u1;create table if not exists u1( id int, name string) row format delimited fields terminated by ',';drop table u2;creat

2021-02-28 12:50:24 2015 1

原创 Hive 星型模型入门

星型模是一种多维的数据关系,它由一个事实表和一组维表组成。每个维表都有一个维作为主键,所有这些维的主键组合成事实表的主键。强调的是对维度进行预处理,将多个维度集合到一个事实表,形成一个宽表。这也是我们在使用hive时,经常会看到一些大宽表的原因,大宽表一般都是事实表,包含了维度关联的主键和一些度量信息,而维度表则是事实表里面维度的具体信息,使用时候一般通过join来组合数据,相对来说对OLAP的分析比较方便。...

2021-02-26 17:27:52 931 2

原创 Hive 执行计划之Reduce Output Operator

此处Reduce Output Operator 值得是map端,还没要reduce端,不要搞混淆了,只是把map的结果输出给reduce端Reduce Output Operator 输出结果给Reduce ,常见的属性sort order 升序还是降序key expressions 依据什么进行排序value expressions 结果列+ 正序排序不排序++按两列正序排序,如果有两列+- 正反排序,如果有两列-反向排序explain select sum(sal) from

2021-02-26 13:42:03 484

原创 Hive执行计划之 Group By Operator

Group By Operator 分组聚合, 常见的属性aggregations、分组是为了哪个聚合函数mode , 一般是hash,对keys计算hashkeys 当没有keys属性时只有一个分组。outputColumnNames 输出的临时列名举个例子 explain select sum(sal) from tb_emp;查看其Group By Operator+----------------------------------------------------------

2021-02-26 13:24:30 571

原创 Hive查看执行计划

可以用explain查看执行计划比如explain select deptno `dept`, year(hiredate) `year`, sum(sal)from tb_empgroup by deptno, year(hiredate);1 可以先看有几个stage比如这个例子有2个+------------------------------------+|Explain |+----------

2021-02-26 13:12:13 2477

原创 Hive group by后面不能用列别名

比如,如下是会报错的,year这个别名此时还是不能用的select deptno `dept`, year(hiredate) `year`, sum(sal)from tb_empgroup by deptno,year;org.apache.hadoop.hive.ql.parse.SemanticException:Line 5:16 Invalidtable alias or column reference ‘year’: (possible column

2021-02-26 12:51:15 1232

原创 Hive什么时候可以用别名?

举个例子,求各部门工资和总工资的比例1 首先求各部门工资以及总工资select deptno, sum(sal) over (distribute by deptno) `d_dal`, sum(sal) over() `total_sal`from tb_emp;2 求比例如下写法是错误的,此时还不能用别名select deptno, sum(sal) over (distribute by deptno) `d_sal`, sum(s

2021-02-26 12:38:11 2450

原创 Hive增加一列固定值

需求同时查出各部门的工资以及公司的总工资with a as ( select sum(sal) `total sal` from tb_emp)select deptno, sum(sal) over (distribute by deptno), a.`total sal`from tb_emp,a;执行结果+------+-----+---------+|deptno|c1 |total sal|+------+-----+---------+|NUL

2021-02-26 12:23:41 3149

原创 大数据面试题

你们公司的数仓是怎么搭建的你们是怎么解决缓慢变化维的问题?拉链表如何在分组内排序,不能使用开窗函数Spark的调优Olap的两种分类讲一下你精准推荐用到的算法,以及他们的原理如果你们公司的技术选型满足不了需求是怎么处理的你们公司的集群有多大,服务器的配置,各种数据有多大,Container的并发多大,Kafka有多少台Mysql事务隔离级别当程序在并发跑的时候,有一个节点出问题了,数据会跑不出来还是跑出来有丢失,怎么解决的hadoop和Spark的区别,各有什么优缺点你们是如何保证数

2021-02-26 10:30:39 148 1

原创 Hive面试题练习

drop table tb_emp;create table tb_emp( empno int, ename string, job string, mgr int, hiredate string, sal float, comm float, deptno int) row format delimited fields terminated by ',';load d

2021-02-26 10:24:20 230

原创 java 插入排序

插入排序是一个简单的排序算法,其工作方式类似于您在手中对扑卡进行排序的方式。array几乎被分割成一个排序和未排序的部分。未排序的部分中挑选和放置在排序部分的正确位置的值。算法按升序对大小 n 阵列进行排序:1:迭代从 arr [1] 到 arr [n] 。2: 将当前元素与其前面的值进行比较。3: 如果当前元素小于前面的元素,则将其与再前面的元素进行比较。将较大的元素向上移动一个位置,为交换的元素腾出空间。示例:insertion-sort另一个例子:12, 11, 13, 5, 6

2021-02-25 20:58:13 187 2

原创 java 构造器(constructor)是否可被重写(override)?

构造器那个叫重载,不叫重写!重写是发生在子类与父类中,方法名、参数列表、返回值、访问修饰符和异常都相同首先,构造器不能被继承,因为每个类名都不相同,而构造器的名称与类名相同,这肯定不能算是继承,所以,既然构造器不能被继承,那他肯定是不能被重写咯参考java的重载与重写_鸭梨的博客-CSDN博客构造器(constructor)是否可被重写(override)? - 知乎...

2021-02-25 19:47:46 584

原创 shell如何传参?

$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…比如,新建一个a.sh文件#!/bin/bashecho "Shell 传递参数实例!";echo "执行的文件名:$0";echo "第一个参数为:$1";echo "第二个参数为:$2";echo "第三个参数为:$3";授权chmod u+x a.sh执行,执行时候传入三个参数a,b,c 然后脚本中用$1,$2,$3分别代表第一,第二,第三个参数.[root@mypc01 data]#

2021-02-25 19:13:33 625

原创 Hive 入门练习题

1.用一条SQL语句查询出每门课都大于80分的学生姓名name kecheng fenshu张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100王五 英语 90select namefrom studentgroup by namehaving min(fenshu) > 80;2. 学生表 如下:自动编号 学号 姓名 课程编

2021-02-25 16:05:32 487

原创 Hive练习之join

1)有三张表分别为会员表(member)销售表(sale)退货表(regoods)(1)会员表有字段memberid(会员id,主键)credits(积分);(2)销售表有字段memberid(会员id,外键)购买金额(MNAccount);(3)退货表中有字段memberid(会员id,外键)退货金额(RMNAccount)。2)业务说明(1)销售表中的销售记录可以是会员购买,也可以是非会员购买。(即销售表中的memberid可以为空);(2)销售表中的一个会员可以有多条购买记录;(3)退

2021-02-25 14:52:49 249

原创 Hive insert into小文件问题

测试数据CREATE TABLE `test_small`( `dist_id` int COMMENT '区组id', `account` string COMMENT '账号', `gold` int COMMENT '金币') row format delimited fields terminated by ',';插入两条数据insert into table test_small values ('1','11',100006);insert

2021-02-25 13:45:45 1138 2

原创 Hive查询各自区组的money排名前十的账号

有一个账号表如下,请写出SQL语句,查询各自区组的money排名前十的账号(分组取前10)1)建表(MySQL)CREATE TABLE `test_ten_account`( `dist_id` int COMMENT '区组id', `account` string COMMENT '账号', `gold` int COMMENT '金币') row format delimited fields terminated by ',';insert int

2021-02-25 12:54:04 1829 4

原创 Hive 求得所有用户和活跃用户的总数及平均年龄

有日志如下,请写出代码求得所有用户和活跃用户的总数及平均年龄。(活跃用户指连续两天都有访问记录的用户)日期 用户 年龄数据集2019-02-11,test_1,232019-02-11,test_2,192019-02-11,test_3,392019-02-11,test_1,232019-02-11,test_3,392019-02-11,test_1,232019-02-12,test_2,192019-02-13,test_1,232019-02-15,test_2,1920

2021-02-25 11:43:58 1147 4

原创 Hive练习求给出2017年1月的新客数

已知一个表STG.ORDER,有如下字段:Date,Order_id,User_id,amount请给出sql进行统计:数据样例:2017-01-01,10029028,1000003251,33.57。2017-01-02,10029028,1000003251,33.57。2017-01-03,10029028,1000003251,33.57。1)给出 2017年每个月的订单数、用户数、总成交金额。2)给出2017年11月的新客数(指在11月才有第一笔订单)建表create t

2021-02-25 10:56:40 1476 2

原创 hive left join入门

准备数据u1文件中的数据如下:1,a2,b3,c4,d7,y8,uu2文件中的数据如下:2,bb3,cc7,yy9,ppcreate table if not exists u1(id int,name string)row format delimited fields terminated by ',';create table if not exists u2(id int,name string)row format delimited fiel

2021-02-24 21:12:12 4395 1

原创 Hive 中 insert into 与with as连用

写法如下,注意insert into的位置with a as (select * from few_ints where x = 2)insertinto few_intsselect *from a;如下写法是会报错的insert into few_intswith a as (select * from few_ints where x = 2)select *from a;报错信息如下org.apache.hadoop.hive.ql.parse.ParseExceptio

2021-02-24 19:18:18 8752

原创 Hive union vs union all

UNION和UNION ALL都将两个不同SQL的结果连接在一起。差异:UNION删除重复项,而UNION ALL不会删除重复项。 UNION操作从结果集中消除了重复的行,但是UNION ALL在加入后返回所有行。UNION ALL比UNION快。 需要其他工作才能删除重复项。 为了删除重复项,必须对结果集进行排序,这可能会影响UNION的性能,具体取决于要排序的数据量。UNION结果集按升序排序,而UNION ALL结果集未排序例外 :在现实世界中,诸如Internet之类的网络是瓶颈,在这

2021-02-24 18:43:47 672

原创 事务事实表入门

事务事实表记录的事务层面的事实,保存的是最原子的数据,也称“原子事实表”。事务事实表中的数据在事务事件发生后产生,数据的粒度通常是每个事务记录一条记录。一旦事务被提交,事实表数据被插入,数据就不再进行更改,其更新方式为增量更新。只有当天数据才会进入当天的事实表中,相当于每个分区里面都是每天的数据,不包含之前的数据。事务事实表的日期维度记录的是事务发生的日期,它记录的事实是事务活动的内容。为什么事务事实表具有稀疏性质?事实表一般围绕着度量来建立,当度量产生的时候,事实记录就生

2021-02-24 16:01:00 476

原创 spark.network.timeout参数入门

默认120s所有网络交互的默认超时时间。 如果未配置,则将使用此配置代替spark.storage.blockManagerSlaveTimeoutMs,spark.shuffle.io.connectionTimeout,spark.rpc.askTimeout或spark.rpc.lookupTimeout。用途若如出现各种timeout,executor lost ,task lostspark.network.timeout 根据情况改成300(5min)或更高参考Configurati

2021-02-24 15:35:53 7502

原创 Spark.shuffle.file.buffer 参数入门

Spark.shuffle.file.buffer默认值:32k参数说明:该参数用于设置shuffle write任务的bufferedOutputStream的缓冲区大小。 将数据写入磁盘文件之前,将其写入缓冲区,然后在将缓冲区写入磁盘后将其填充。调整建议:如果可用内存资源足够,则可以增加此参数的大小(例如64k),以减少在随机写入过程中磁盘文件溢出的次数,从而可以减少磁盘的数量。 IO时间和提高性能在实践中发现,合理调整参数后,性能将提高1%到5%。参考Spark performan

2021-02-24 15:21:48 1722

原创 Spark.shuffle.io.maxRetries参数

Spark.shuffle.io.maxRetries默认值:3参数说明:shuffle read任务从shuffle write任务那里节点正在拉自己的数据,如果网络由于异常拉失败而失败,它将自动重试。 此参数表示可以重试的最大次数。 如果在指定的次数内进行或不成功,则可能导致作业失败。调优建议:对于那些包含耗时的shuffle的作业,建议增加最大重试次数(例如60次),以避免由于诸如JVM或网络的完整gc之类的因素而导致数据失败。 不稳定。 在实践中发现,对于大量数据(数十亿到数十亿的shuf

2021-02-24 14:06:02 1127

原创 Spark.reducer.maxSizeInFlight 参数

Spark.reducer.maxSizeInFlight默认值:48m参数说明:该参数用于设置shuffle read任务的buff缓冲区大小,该缓冲区决定一次可以拉取多少数据。调整建议:如果可用内存资源足够,则可以增加参数的大小(例如96m),从而减少拉取数据的次数,这可以减少网络传输的次数并提高性能。 在实践中发现,合理调整参数后,性能会提高1%至5%。但是executor内存不足时,设置的太大,就会造成OOM导致宕机参考Spark performance optimization: s

2021-02-24 11:18:06 1627

原创 yarn 内存与CPU参数设置

每个job提交到yarn上执行时,都会分配Container容器去运行,而这个容器需要资源才能运行,这个资源就是Cpu和内存。1、CPU资源调度目前的CPU被Yarn划分为虚拟CPU,这是yarn自己引入的概念,因为每个服务器的Cpu计算能力不一样,有的机器可能是 其他机器的计算能力的2倍,然后可以通过多配置几个虚拟内存弥补差异。在yarn中,cpu的相关配置如下。yarn.nodemanager.resource.cpu-vcores表示该节点服务器上yarn可以使用的虚拟的CPU个数,默认是8

2021-02-24 09:50:41 7799 2

原创 使用hive计算每一年的最大气温的日期+温度

数据解析:比如:2010012325表示在2010年01月23日的气温为25度。需求:现在要求使用hive,计算每一年的最大气温的日期+温度。效果如下:20010105 2920070109 9920080103 3720100103 1720120107 3220130109 2920140103 1720150109 99原始数据如下2014010114201401

2021-02-23 20:28:48 550

原创 Hive编写连续7天登录的总人数:

编写连续7天登录的总人数:数据: t1表Uid dt login_status(1登录成功,0异常) 1 2019-07-11 1 1 2019-07-12 1 1 2019-07-13 1 1 2019-07-14 1 1 2019-07-15 1 1 2019-07-16 1 1 2019-07-17 1 1 2019-07-18 1 2 2019-07-11 1 2 2019-07-12 1 2 2019-07-13 0 2 2019-07-14 1 2 2019-07-

2021-02-23 19:58:07 437

原创 Hive date_format函数入门

date_format 的语法: date_format(date/timestamp/string ts, string fmt)举几个例子select date_format('2015-04-08', 'y');2015select date_format('2015-04-08', 'yyyy');2015select date_format('2015-04-08', 'yyyy-MM');2015-04select date_format('2015-04-08 10:10:

2021-02-23 19:27:10 36806

原创 Hive 使用SQL统计出每个用户的累积访问次数

我们有如下的用户访问数据userId visitDate visitCountu01 2017/1/21 5u02 2017/1/23 6u03 2017/1/22 8u04 2017/1/20 3u01 2017/1/23 6u01 2017/2/21 8U02 2017/1/23 6U01 2017/2/22 4要求使用SQL统计出每个用户的累积访问次数,如下表所示:用户id 月份 小计 累积u01 2017-01 11 11u01 2017-02 12 23u02 201

2021-02-23 18:50:37 3511 1

原创 Hive找出所有科目成绩都大于某一学科平均成绩的学生

表结构:uid,subject_id,score求:找出所有科目成绩都大于某一学科平均成绩的学生数据集如下1001 01 901001 02 901001 03 901002 01 851002 02 851002 03 701003 01 701003 02 701003 03 851)建表语句create table score( uid string, subject_id string, score int)row format delimite

2021-02-23 17:48:37 1832 1

原创 Hive 求全局Top N

有一个线上服务器访问日志格式如下(用sql答题)时间 接口 ip地址2016-11-09 11:22:05 /api/user/login 110.23.5.332016-11-09 11:23:10 /api/user/detail 57.3.2.16.....2016-11-09 23:59:40 /api/user/log

2021-02-23 16:16:00 251 1

原创 Hive 求top N

有50W个京东店铺,每个顾客访客访问任何一个店铺的任何一个商品时都会产生一条访问日志,访问日志存储的表名为Visit,访客的用户id为user_id,被访问的店铺名称为shop,请统计:1)每个店铺的UV(访客数)2)每个店铺访问次数top3的访客信息。输出店铺名称、访客id、访问次数数据集u1 au2 bu1 bu1 au3 cu4 bu1 au2 cu5 bu4 bu6 cu2 cu1 bu2 au2 au3 au5 au5 au5 a1)建表creat

2021-02-23 15:38:25 422

原创 如何查看Hive版本

hive比较坑的一点就是没有类似hive -version的方便地查看版本的方法,我们只能自己去hive的安装目录里去看各个jar包的版本。可以登录hive查看版本hive如下,表示Hive为1.1.0版本Logging initialized using configuration in jar:file:/usr/local/hive/lib/hive-common-1.1.0-cdh5.13.2.jar!/hive-log4j.properties参考hive–查看hive版本_韩家

2021-02-23 14:35:51 12322 1

原创 MD5加密入门

MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。比如,在UNIX下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如:MD5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461这就是tanajiya.tar.gz文件的数字签名。MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。为了

2021-02-23 09:55:34 274

原创 mvn dependency命令

查看依赖mvn dependency:resolve 打印依赖树mvn dependency:tree下载源码及文档mvn dependency:sources -DdownloadSources=true -DdownloadJavadocs=true

2021-02-17 16:44:32 2440

原创 spark计算列与列之间的余弦相似度

import org.apache.spark.mllib.linalgimport org.apache.spark.mllib.linalg.Vectorsimport org.apache.spark.mllib.linalg.distributed.{CoordinateMatrix, RowMatrix}import org.apache.spark.rdd.RDDimport org.apache.spark.sql.SparkSessionobject Test { def m

2021-02-13 21:30:26 1203

原创 spark mlib坐标矩阵(Coordinate Matrix)

坐标矩阵CoordinateMatrix是一个基于矩阵项构成的RDD的分布式矩阵。每一个矩阵项MatrixEntry都是一个三元组:(i: Long, j: Long, value: Double),其中i是行索引,j是列索引,value是该位置的值。坐标矩阵一般在矩阵的两个维度都很大,且矩阵非常稀疏的时候使用。CoordinateMatrix实例可通过RDD[MatrixEntry]实例来创建,其中每一个矩阵项都是一个(rowIndex, colIndex, elem)的三元组import or

2021-02-13 21:11:43 1453

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除