面试Interview
文章平均质量分 78
for your wish
好记性不如烂笔头。个人笔记用的博客
展开
-
链表反转-迭代和递归
要求很简单,输入一个链表,反转链表后,输出新链表的表头。 反转链表是有2种方法(递归法,遍历法)实现的,面试官最爱考察的算法无非是斐波那契数列和单链表反转,递归方法实现链表反转比较优雅,但是对于不了解递归的同学来说还是有理解难度的。遍历法遍历法就是在链表遍历的过程中将指针顺序置换...原创 2022-03-13 14:22:06 · 246 阅读 · 0 评论 -
时间空间复杂度
大O表示法忽略常数,只看最高复杂度的运算。比如一个for循环,循环1次和10次都是O(1)(不看常数的)O(n)和O(10n)都是O(n),O(n^2+n)就是O(n^2)O(1) O(log(n)) O(n) O(n^2) O(2^n) O(n!)O(log(n))没有底数:底下能推出来一个常数。根据换底公式下面能换出来一个常数忽略常数,所以以2为底和以3为底一样的没区别举例首先声明:LeeCode认为 一亿下计算大概1sO(1)int n = 10.原创 2022-02-28 10:24:34 · 426 阅读 · 0 评论 -
UDF获取最新分区
获取最新分区<dependencies> <!-- https://mvnrepository.com/artifact/org.apache.hive/hive-exec --> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-exec</artifactId> <version原创 2022-02-26 16:05:46 · 337 阅读 · 0 评论 -
Spark源码分析之一:Job提交运行总流程概述
Spark是一个基于内存的分布式计算框架,运行在其上的应用程序,按照Action被划分为一个个Job,而Job提交运行的总流程,大致分为两个阶段: 1、Stage划分与提交 (1)Job按照RDD之间的依赖关系是否为宽依赖,由DAGScheduler划分为一个个Stage,并将每个Stage提交给TaskScheduler; (2)Stage随后被提交,并由TaskScheduler将每个stage转化为一个TaskSet; 2、Ta...原创 2022-02-26 16:01:41 · 365 阅读 · 0 评论 -
Flink面试篇-基础/源码
面试题 1:请介绍一下 Flink 这道题是一道很简单的入门题,考察我们队 Flink 整体的掌握情况,我们应该从以下几个基本的概念入手。Flink 是大数据领域的分布式实时和离线计算引擎,其程序的基础构建模块是流(Streams)和转换(Transformations),每一个数据流起始于一个或多个Source,并终止于一个或多个Sink。数据流类似于有向无环图(DAG)。 Flink 提供了诸多高抽象层的 API 以便用户编写分布式任务: ...原创 2022-02-26 12:11:32 · 197 阅读 · 0 评论 -
Spark读Hive和写Hive-实例
导入Maven<properties> <spark.version>2.1.1</spark.version> <scala.version>2.11.8</scala.version></properties><dependencies> <dependency> <groupId>org.apache.spark&原创 2022-02-25 19:31:10 · 251 阅读 · 0 评论 -
Spark/Hive如何解析嵌套Json
Hive解析嵌套Json用get_json_object数据是string类型,拆分的时候get_json_object的逗号后要加个空格{"KdProjCode":"A20160518015NB","DTjType":"调价","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","PriceHzInfo":{"Item":{"HzAmountAfter":1.0190920349E10,"HzAmountBefore":1.019080原创 2022-02-25 18:21:39 · 2317 阅读 · 0 评论 -
超级实用-MySQL 常用优化指南
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:字段 尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,...原创 2022-02-17 10:02:32 · 141 阅读 · 0 评论 -
Impala内存优化/溢出管理
一.引言Hadoop生态中的NoSQL数据分析三剑客Hive、HBase、Impala分别在海量批处理分析、大数据列式存储、实时交互式分析各有所长。尤其是Impala,自从加入Hadoop大家庭以来,凭借其各个特点鲜明的优点博取了广大大数据分析人员的欢心。Impala通过主节点生成执行计划树并分发执行计划至各节点并行执行的拉式获取数据的工作方式,替代了Hadoop中传统的MapReduce推式获取数据的工作方式,计算的中间结果不写入磁盘,及时通过网络以stream的方式传递,...转载 2022-02-25 10:00:20 · 2439 阅读 · 0 评论 -
Spark on Yarn任务提交流程(工作中用到yarn-client模式)
Spark on YARN是spark运行在yarn上,其中有yarn-client和yarn-cluster两种模式,它们的区别在于Driver运行的结点位置。yarn-client模式yarn-client模式下的spark的Driver运行在客户端,适用于交互、调试,希望立即看到app的输出。yarn-cluster模式yarn-cluster模式下的spark的Driver运行在ResourceManager(以下简称RM)启动的ApplicationMaster(以下简称AM)下,这个模式原创 2021-05-31 15:47:29 · 627 阅读 · 0 评论 -
RDD五大特性和DataFrame互转
RDD:弹性分布数据集弹性:可以自动进行内存和磁盘间的数据存储切换,容错性高分布式:多节点五大特性分区partition:一个RDD会有一个或多个分区分区函数patitioner优先位置PerferedLocation:对于数据p返回数据的优先位置依赖关系:RDD之间的依赖关系迭代计算宽窄依赖父子关系是一对一还是多对一,宽的切分出来一个stage...原创 2022-02-24 09:37:15 · 360 阅读 · 0 评论 -
Hive的ReduceJoin/MapJoin/SMBJoin
Hive中就是把Map,Reduce的Join拿过来,通过SQL来表示。参考链接:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Joins1.Reduce /Common/Shuffle JoinReduce Join在Hive中也叫Common Join或Shuffle Join如果两边数据量都很大,它会进行把相同key的value合在一起,正好符合我们在sql中的join,然后再去组合,如图所示。.原创 2021-03-27 10:23:33 · 643 阅读 · 1 评论 -
拾壹SparkSQL-join:不同的关联形式与实现机制
Join 的种类非常丰富。如果按照关联形式(Join Types)来划分,数据关联分为内关联、外关联、左关联、右关联,等等。对于参与关联计算的两张表,关联形式决定了结果集的数据来源。因此,在开发过程中选择哪种关联形式,是由我们的业务逻辑决定的。而从实现机制的角度,Join 又可以分为 NLJ(Nested Loop Join)、SMJ(Sort Merge Join)和 HJ(Hash Join)。也就是说,同样是内关联,我们既可以采用 NLJ 来实现,也可以采用 SMJ 或是 HJ 来实现。区...原创 2021-12-11 19:42:48 · 1741 阅读 · 0 评论 -
(四)Spark常用数据准备,重分布,持久化算子
数据准备union 先来说说数据准备阶段的 union 和 sample。union在我们日常的开发中,union 非常常见,它常常用于把两个类型一致、但来源不同的 RDD 进行合并,从而构成一个统一的、更大的分布式数据集。例如,在某个数据分析场景中,一份数据源来自远端数据库,而另一份数据源来自本地文件系统,要将两份数据进行合并,我们就需要用到 union 这个操作。具体怎么使用呢?我来举个例子。给定两个 RDD:rdd1 和 rdd2,调用 rdd1.union(rdd2) 或是 r...原创 2021-11-26 17:56:55 · 593 阅读 · 0 评论 -
(二)常用Shuffle类算子:groupByKey、reduceByKey、aggregateByKey 和 sortByKey
在数据分析场景中,典型的计算类型分别是分组、聚合和排序。而 groupByKey、reduceByKey、aggregateByKey 和 sortByKey 这些算子的功能,恰恰就是用来实现分组、聚合和排序的计算逻辑。 这些算子看上去相比其他算子的适用范围更窄,也就是它们只能作用(Apply)在 Paired RDD 之上,所谓 Paired RDD,它指的是元素类型为(Key,Value)键值对的 RDD。 但是在功能方面,可以说,它们承担了数据分析场景中的大...原创 2021-11-26 09:54:46 · 1383 阅读 · 0 评论 -
19:Structured Streaming:Windows操作和WaterMarker-流处理引擎提供了哪些优秀机制
今天这一讲,咱们从功能的视角出发,继续来聊一聊 Structured Streaming 流处理引擎都为开发者都提供了哪些特性与能力,让你更灵活地设计并实现流处理应用。Structured Streaming 怎样坐享其成? 学习过计算模型之后,我们知道,不管是 Batch mode 的多个 Micro-batch、多个作业的执行方式,还是 Continuous mode 下的一个 Long running job,这些作业的执行计划,最终都会交付给 Spark SQL ...原创 2022-01-28 15:59:15 · 2011 阅读 · 0 评论 -
Hive数据倾斜YT
如 事实表 关联 每日抽取的维表拉链表,维表中有很多重复的org_code(开链闭链)和事实表中数据关联,会造成数据倾斜。将维表的最新视图切片,每日一片,这样的话当日就只有一条数据和事实表关联。......原创 2021-03-30 13:53:57 · 315 阅读 · 0 评论 -
ODS层设计规范
ODS层设计规范更新时间:2021-06-08 14:37我的收藏本页目录数据同步及处理规范 命名规范 数据存储及生命周期管理规范 数据质量规范本文为您介绍ODS层设计规范。数据同步及处理规范数据同步方式的选择 基本规范通过需求形式落地到DataWorks的数据集成,规范落地情况依赖工具的推进节奏。一个系统的源表只允许同步一次到MaxCompute。 数据加载与处理 通过一键实时同步至MaxCompute方案实现,请参见配置查看数据同步任务。 命名规范表命名原创 2021-08-03 13:48:00 · 843 阅读 · 0 评论 -
连续七天登录-在线人数最多
select id,count(*)from(select *,date_add(dated,-rown) as startdate from (select *,row_number() over(PARTITION by id order by dated) as rown from (select distinct id, to_date(date) as dated ...原创 2021-05-17 10:13:33 · 1319 阅读 · 0 评论 -
Sql面试题
行列转换原始数据为ids types1 A1 C1 E2 B2 D2 F希望变为ids A B C D E F1 1 0 1 0 1 02 0 1 0 1 0 1行列转换记得用case when then else endSELECT ids, sum(case when types='A' then 1 else 0 end) A, sum(case when types='B' then原创 2020-06-28 16:17:13 · 272 阅读 · 0 评论