- 博客(361)
- 收藏
- 关注
原创 2020_TabTransformer
我们提出了TabTransformer,这是一种用于监督和半监督学习的新型深度表格数据建模架构。TabTransformer是建立在基于自我注意力的Transformers之上的。Transformer层将分类特征的嵌入转换为强大的上下文嵌入,以实现更高的预测准确性。通过对15个公开数据集的广泛实验,我们表明TabTransformer在平均AUC上比最先进的表格数据深度学习方法至少高出1.0%,并且与基于树的集成模型的性能相匹配。此外,我们证明了从。
2025-02-06 15:18:00
578
原创 2017_DCN(Deep & Cross Network for Ad Click Predictions)
特征工程是许多预测模型成功的关键。然而,该过程是不平凡的,并且优化需要手动特征工程或穷举搜索。DNN能够自动学习特征交互;然而,它们隐式地生成所有交互,并且在学习所有类型的交叉特征时不一定有效。深度和交叉网络(DCN),它保留了DNN模型的优点,除此之外,它还引入了一种新的交叉网络,在学习某些有界度特征交互方面更有效。特别是,DCN在每一层都显式地应用特征交叉,不需要手动特征工程,并为DNN模型增加了可忽略的额外复杂性。
2025-02-06 15:15:50
550
原创 2019_AutoInt
点击率(CTR)预测的目的是预测用户点击广告或项目的概率,其对于诸如在线广告和推荐系统的许多在线应用至关重要。该问题非常具有挑战性,因为(1)输入特征(例如,用户ID、用户年龄、项目ID、项目类别)通常是稀疏的和高维的,以及(2)有效的预测依赖于高阶组合特征(也称为,交叉特征),这对于领域专家手工制作是非常耗时的,并且不可能被枚举。因此,人们一直在努力寻找稀疏和高维原始特征及其有意义的组合的低维表示。在本文中,我们提出了一个有效的和高效的方法称为AutoInt自动学习输入功能的高阶功能的相互作用。
2025-02-06 15:10:08
698
原创 1211. 查询结果的质量和占比
Queries 表:此表可能有重复的行。此表包含了一些从数据库中收集的查询信息。“位置”(position)列的值为 1 到 500。“评分”(rating)列的值为 1 到 5。评分小于 3 的查询被定义为质量很差的查询。将查询结果的质量 quality 定义为:各查询结果的评分与其位置之间比率的平均值。将劣质查询百分比 poor_query_percentage 定义为:评分小于 3 的查询结果占全部查询结果的百分比。
2025-02-06 12:31:51
229
原创 hot100_138. 随机链表的复制
给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。构造这个链表的深拷贝。深拷贝应该正好由 n 个 全新节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点。例如,如果原链表中有 X 和 Y 两个节点,其中 X.random --> Y。
2025-02-06 11:38:39
461
原创 5 HBase 的 Java API 开发
需求:使用 SingleColumnValueFilter 查询 f1 列族,name 为刘备的数据,并且同时满足 rowkey 的前缀以 00 开头的数据(PrefixFilter)与 SingleColumnValueFilter 相反,会排除掉指定的列,其他的列全部返回。过滤器的作用是在服务端判断数据是否满足条件,然后只将满足条件的数据返回给客户端;过滤器的类型很多,但是可以分为两大类——比较过滤器,专用过滤器。查询以 00 开头的所有前缀的 rowkey。查询比 f2 列族小的所有的列族内的数据。
2025-02-05 22:38:50
300
原创 4 HBase 的高级 shell 管理命令
检查表是否存在,适用于表量特别多的情况。删除一张表,记得在删除表之前必须先禁用。禁用一张表/启用一张表。例如:显示服务器状态。检查表是否启用或禁用。
2025-02-05 22:29:52
184
原创 3 HBase 常用 shell 操作
向 user 表中插入信息,row key 为 rk0001,列族 info 中添加 name 列标示符,值为 zhangsan。向 user 表中插入信息,row key 为 rk0001,列族 info 中添加 gender 列标示符,值为 female。向 user 表中插入信息,row key 为 rk0001,列族 data 中添加 pic 列标示符,值为 picture。向 user 表中插入信息,row key 为 rk0001,列族 info 中添加 age 列标示符,值为 20。
2025-02-05 22:27:23
526
原创 2 HBase 基础架构
但把数据保存在内存中可能有更高的概率引起数据丢失,为了解决这个问题,数据会先写在一个叫做 Write-Ahead logfile 的文件中,然后再写入内存中。Hbase 表的分片,HBase 表会根据 RowKey 值被切分成不同的 region 存储在 RegionServer 中,在一个 RegionServer 中可以有多个不同的 region。顾名思义,就是内存存储,位于内存中,用来保存当前的数据操作,所以当数据保存在 WAL 中之后,RegsionServer 会在内存中存储键值对。
2025-02-05 22:15:03
272
原创 1 HBase 基础
简介HBase 是 BigTable 的开源 Java 版本。是建立在 HDFS 之上,提供高可靠性、高性能、列存储、可伸缩、实时读写 NoSql 的数据库系统。它介于 NoSql 和 RDBMS 之间,仅能通过主键(row key)和主键的 range 来检索数据,仅支持单行事务(可通过 hive 支持来实现多表 join 等复杂操作)。主要用来存储结构化和半结构化的松散数据。
2025-02-05 22:05:30
892
原创 高频 SQL 50 题(基础版)_1633. 各赛事的用户注册率
所有用户都注册了 208、209 和 210 赛事,因此这些赛事的注册率为 100% ,我们按 contest_id 的降序排序加入结果表中。返回的结果表按 percentage 的 降序 排序,若相同则按 contest_id 的 升序 排序。Bob 注册了 207 赛事,注册率为 ((1/3) * 100) = 33.33%(contest_id, user_id) 是该表的主键(具有唯一值的列的组合)。user_id 是该表的主键(具有唯一值的列)。该表中的每行包含用户的 ID 和他们注册的赛事。
2025-02-02 08:46:24
405
原创 hot100_25. K 个一组翻转链表
给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。示例 1:输入:head = [1,2,3,4,5], k = 2输出:[2,1,4,3,5]示例 2:输入:head = [1,2,3,4,5], k = 3输出:[3,2,1,4,5]
2025-02-02 08:46:13
252
原创 高频 SQL 50 题(基础版)_1075. 项目员工 I
项目表 Project:主键为 (project_id, employee_id)。employee_id 是员工表 Employee 表的外键。这张表的每一行表示 employee_id 的员工正在 project_id 的项目上工作。员工表 Employee:主键是 employee_id。数据保证 experience_years 非空。这张表的每一行包含一个员工的信息。请写一个 SQL 语句,查询每一个项目中员工的 平均 工作年限,精确到小数点后两位。
2025-02-02 08:46:00
278
原创 hot100_21. 合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]
2025-02-01 20:44:53
228
原创 12 Flink 面试题
Client是Flink程序提交的客户端,当用户提交一个Flink程序时,会首先创建一个Client,该Client首先会对用户提交的Flink程序进行预处理,并提交到Flink集群中处理,所以Client需要从用户提交的Flink程序配置中获取JobManager的地址,并建立到JobManager的连接,将Flink Job提交给JobManager。而 Flink 的 Checkpoint 机制要复杂了很多,它采用的是轻量级的分布式快照,实现了每个算子的快照,及流动中的数据的快照。
2025-02-01 18:58:50
659
原创 11 基于 Flink 构建全场景实时数仓
接着需要新起一个任务,从原来比较早的一个时间节点去消费 Kafka 上的数据,然后当这个新的任务运行的进度已经能够和现在的正在跑的任务齐平的时候,你就可以把现在任务的下游切换到新的任务上面,旧的任务就可以停掉,并且原来产出的结果表也可以被删掉。对于实时数仓来说,怎么去解决数据重算问题?实时明细层:在明细层,为了解决重复建设的问题,要进行统一构建,利用离线数仓的模式,建设统一的基础明细数据层,按照主题进行管理,明细层的目的是给下游提供直接可用的数据,因此要对基础层进行统一的加工,比如清洗、过滤、扩维等。
2025-02-01 18:25:31
861
原创 10 Flink CDC
核心思想是,监测并捕获数据库的变动(包括数据或数据表的插入、更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以供其他服务进行订阅及消费。Flink 社区开发了 flink-cdc-connectors 组件,这是一个可以直接从 MySQL、PostgreSQL 等数据库直接读取全量数据和增量变更数据的 source 组件。在广义的概念上,只要能捕获数据变更的技术,我们都可以称为 CDC。通常我们说的 CDC 技术主要面向数据库的变更,是一种用于捕获数据库中数据变更的技术。
2025-02-01 18:21:07
767
原创 9 Flink CEP
Apache Flink在实现CEP时借鉴了Efficient Pattern Matching over Event Streams论文中NFA的模型,在这篇论文中,还提到了一些优化,我们在这里先跳过,只说下NFA的概念。在这篇论文中,提到了NFA,也就是Non-determined Finite Automaton,叫做不确定的有限状态机,指的是状态有限,但是每个状态可能被转换成多个状态(不确定)。非确定有限自动状态机先介绍两个概念:状态:状态分为三类,起始状态、中间状态和最终状态。
2025-02-01 18:18:09
515
原创 8 Flink SQL
Flink SQL 是 Flink 实时计算为简化计算模型,降低用户使用实时计算门槛而设计的一套符合标准 SQL 语义的开发语言。自 2015 年开始,阿里巴巴开始调研开源流计算引擎,最终决定基于 Flink 打造新一代计算引擎,针对 Flink 存在的不足进行优化和改进,并且在 2019 年初将最终代码开源,也就是我们熟知的 Blink。Blink 在原来的 Flink 基础上最显著的一个贡献就是 Flink SQL 的实现。
2025-02-01 18:10:30
558
原创 7 Flink的容错
checkpoint机制是Flink可靠性的基石,可以保证Flink集群在某个算子因为某些原因(如 异常退出)出现故障时,能够将整个应用流图的状态恢复到故障之前的某一状态,保 证应用流图状态的一致性。Flink的checkpoint机制原理来自“Chandy-Lamport algorithm”算法。
2025-02-01 17:34:19
611
原创 6 Flink 状态管理
我们前面写的 wordcount 的例子,没有包含状态管理。如果一个task在处理过程中挂掉了,那么它在内存中的状态都会丢失,所有的数据都需要重新计算。从容错和消息处理的语义上(at least once, exactly once),Flink引入了state和checkpoint。
2025-02-01 17:16:24
1418
原创 5 流处理中的Time与Window
Flink 是流式的、实时的 计算引擎。上面一句话就有两个概念,一个是流式,一个是实时。流式:就是数据源源不断的流进来,也就是数据没有边界,但是我们计算的时候必须在一个有边界的范围内进行,所以这里面就有一个问题,边界怎么确定?无非就两种方式,根据时间段或者数据量进行确定,根据时间段就是每隔多长时间就划分一个边界,根据数据量就是每来多少条数据划分一个边界,Flink 中就是这么划分边界的,本文会详细讲解。实时:就是数据发送过来之后立马就进行相关的计算,然后将结果输出。
2025-02-01 16:14:08
686
原创 4 Flink 算子大全
Flink和Spark类似,也是一种一站式处理的框架;既可以进行批处理(DataSet),也可以进行实时处理(DataStream)。所以下面将Flink的算子分为两大类:一类是DataSet,一类是DataStream。
2025-02-01 15:58:40
582
原创 3 Flink 运行架构
Source: 数据源,Flink 在流处理和批处理上的 source 大概有 4 类:基于本地集合的 source、基于文件的 source、基于网络套接字的 source、自定义的 source。Flink的所有操作都称之为Operator,客户端在提交任务的时候会对Operator进行优化操作,能进行合并的Operator会被合并为一个Operator,合并后的Operator称为Operator chain,实际上就是一个执行链,每个执行链会在TaskManager上一个独立的线程中执行。
2025-02-01 15:42:18
974
原创 2 Flink 部署及启动
Flink 支持多种安装模式:1.local(本地)——单机模式,一般不使用;2.standalone——独立模式,Flink 自带集群,开发测试环境使用;3.yarn——计算资源统一由 Hadoop YARN 管理,生产环境使用。Flink 集群的安装不属于本文档的范畴,如安装 Flink,可自行搜索资料进行安装。本节重点在 Flink 的 Yarn 部署模式。
2025-02-01 15:30:25
980
原创 1 Flink 简介
Flink 起源于 Stratosphere 项目,Stratosphere 是在 2010~2014 年由 3 所地处柏林的大学和欧洲的一些其他的大学共同进行的研究项目,2014 年 4 月 Stratosphere 的代码被复制并捐赠给了 Apache 软件基金会,参加这个孵化项目的初始成员是 Stratosphere 系统的核心开发人员,2014 年 12 月,Flink 一跃成为 Apache 软件基金会的顶级项目。
2025-02-01 15:15:58
891
原创 4 Hadoop 面试真题
EC(纠删码)是一种编码技术,在 HDFS 之前,这种编码技术在廉价磁盘冗余阵列(RAID)中应用最广泛,RAID 通过条带化技术实现 EC,条带化技术就是一种自动将 I/O 的负载均衡到多个物理磁盘上的技术,原理就是将一块连续的数据分成很多小部分并把他们分别存储到不同磁盘上去,这就能使多个进程同时访问数据的多个不同部分而不会造成磁盘冲突(当多个进程同时访问一个磁盘时,可能会出现磁盘冲突),而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的 I/O 并行能力,从而获得非常好的性能。
2025-02-01 14:01:50
1373
原创 3 Yarn
YARN是Hadoop2引入的通用的资源管理和任务调度的平台,可以在YARN上运行MapReduce、Tez、Spark等多种计算框架,只要计算框架实现了YARN所定义的接口,都可以运行在这套通用的Hadoop资源管理和任务调度平台上。Hadoop 1.0是由HDFS和MapReduce V1组成的,YARN出现之前是MapReduce V1来负责资源管理和任务调度,MapReduce V1由JobTracker和TaskTracker两部分组成。
2025-02-01 12:08:58
999
原创 2 MapReduce
MapReduce思想在生活中处处可见。或多或少都曾接触过这种思想。MapReduce的思想核心是“分而治之”,适用于大量复杂的任务处理场景(大规模数据处理场景)。即使是发布过论文实现分布式计算的谷歌也只是实现了这种思想,而不是自己原创。Map负责“分”,即把复杂的任务分解为若干个“简单的任务”来并行处理。可以进行拆分的前提是这些小任务可以并行计算,彼此间几乎没有依赖关系。Reduce负责“合”,即对map阶段的结果进行全局汇总。MapReduce运行在yarn集群。
2025-01-31 19:46:18
1300
原创 1 HDFS
Hadoop 分布式系统框架中,首要的基础功能就是文件系统,在 Hadoop 中使用 FileSystem 这个抽象类来表示我们的文件系统,这个抽象类下面有很多子实现类,究竟使用哪一种,需要看我们具体的实现类,在我们实际工作中,用到的最多的就是HDFS(分布式文件系统)以及LocalFileSystem(本地文件系统)了。在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称为分布式文件系统。
2025-01-31 18:56:37
1039
原创 11 Spark面试真题
但是spark也有劣势,由于spark基于内存进行计算,虽然开发容易,但是真正面对大数据的时候,在没有进行调优的情况下,可能会出现各种各样的问题,比如OOM内存溢出等情况,导致spark程序可能无法运行起来,而mapreduce虽然运行缓慢,但是至少可以慢慢运行完。父RDD的每一个partition中的数据,都可能会传输一部分到下一个子RDD的每一个partition中,此时会出现父RDD和子RDD的partition之间具有交互错综复杂的关系,这种情况就叫做两个RDD之间是宽依赖。
2025-01-30 21:19:59
1169
原创 10 故障排除
YARN-client模式下,Driver是运行在本地机器上的,Spark使用的JVM的PermGen的配置,是本地机器上的spark-class文件,JVM永久代的大小是128MB,这个是没有问题的,但是在YARN-cluster模式下,Driver运行在YARN集群的某个节点上,使用的是没有经过配置的默认设置,PermGen永久代大小为82MB。reduce端拉取数据的缓冲区减小,不容易导致OOM,但是相应的,reudce端的拉取次数增加,造成更多的网络传输开销,造成性能的下降。
2025-01-30 20:58:52
605
原创 9 Spark性能优化_Shuffle调优
在Spark任务运行过程中,如果shuffle的map端处理的数据量比较大,但是map端缓冲的大小是固定的,可能会出现map端缓冲数据频繁spill溢写到磁盘文件中的情况,使得性能非常低下,通过调节map端缓冲的大小,可以避免频繁的磁盘IO操作,进而提升Spark任务的整体性能。map端缓冲的默认配置是32KB,如果每个task处理640KB的数据,那么会发生640/32 = 20次溢写,如果每个task处理64000KB的数据,即会发生64000/32=2000次溢写,这对于性能的影响是非常严重的。
2025-01-30 20:56:47
598
原创 9 Spark性能优化_RDD算子调优
Spark SQL这一步的并行度和task数量肯定是没有办法去改变了,但是,对于Spark SQL查询出来的RDD,立即使用repartition算子,去重新进行分区,这样可以重新分区为多个partition,从repartition之后的RDD操作,由于不再涉及Spark SQL,因此stage的并行度就会等于你手动设置的值,这样就避免了Spark SQL所在的stage只能用少量的task去处理大量数据并执行复杂的算法逻辑。默认情况下,Spark使用Java的序列化机制。
2025-01-30 20:54:00
1369
原创 8 Spark 数据倾斜
就是数据分到各个区的数量不太均匀,可以自定义分区器,想怎么分就怎么分。Spark中的数据倾斜问题主要指shuffle过程中出现的数据倾斜问题,是由于不同的key对应的数据量不同导致的不同task所处理的数据量不同的问题。例如,reduced端一共要处理100万条数据,第一个和第二个task分别被分配到了1万条数据,计算5分钟内完成,第三个task分配到了98万数据,此时第三个task可能需要10个小时完成,这使得整个Spark作业需要10个小时才能运行完成,这就是数据倾斜所带来的后果。
2025-01-30 20:43:04
986
原创 7 Spark 底层执行原理
Spark 运行流程Spark运行流程具体运行流程如下:1.SparkContext 向资源管理器注册并向资源管理器申请运行 Executor2.资源管理器分配 Executor,然后资源管理器启动 Executor3.Executor 发送心跳至资源管理器4.SparkContext 构建 DAG 有向无环图5.将 DAG 分解成 Stage(TaskSet)6.把 Stage 发送给 TaskScheduler。
2025-01-30 20:36:12
1266
原创 6 Spark 的两种核心 Shuffle
在 MapReduce 框架中, Shuffle 阶段是连接 Map 与 Reduce 之间的桥梁, Map 阶段通过 Shuffle 过程将数据输出到 Reduce 阶段中。由于 Shuffle 涉及磁盘的读写和网络 I/O,因此 Shuffle 性能的高低直接影响整个程序的性能。Spark 也有 Map 阶段和 Reduce 阶段,因此也会出现 Shuffle。
2025-01-30 20:30:55
699
原创 5 Structured Streaming
在 2.0 之前,Spark Streaming 作为核心 API 的扩展,针对实时数据流,提供了一套可扩展、高吞吐、可容错的流式计算模型。Spark Streaming 会接收实时数据源的数据,并切分成很多小的 batches,然后被 Spark Engine 执行,产出同样由很多小的 batchs 组成的结果流。本质上,这是一种 micro-batch(微批处理)的方式处理,用批的思想去处理流数据.这种设计让Spark Streaming 面对复杂的流式处理场景时捉襟见肘。
2025-01-30 20:21:00
685
原创 4 Spark Streaming
可以把汽车的经过看成一个流,无穷的流,不断有汽车经过此红绿灯,因此无法统计总共的汽车数量。但是,我们可以换一种思路,每隔 15 秒,我们都将与上一次的结果进行 sum 操作(滑动聚合, 但是这个结果似乎还是无法回答我们的问题,根本原因在于流是无界的,我们不能限制流,但可以在有一个有界的范围内处理无界的流数据。Spark Streaming 的基础抽象是 DStream(Discretized Stream,离散化数据流,连续不断的数据流),代表持续性的数据流和经过各种 Spark 算子操作后的结果数据流。
2025-01-30 20:12:28
1268
原创 3 Spark SQL
数据分类总结:-定义 特点 举例-Spark 处理什么样的数据?RDD 主要用于处理非结构化数据 、半结构化数据、结构化;SparkSQL 主要用于处理结构化数据(较为规范的半结构化数据也可以处理)。-总结:SparkSQL 是一个既支持 SQL 又支持命令式数据处理的工具;SparkSQL 的主要适用场景是处理结构化数据(较为规范的半结构化数据也可以处理)。DataFrame = RDD - 泛型 + Schema + SQL + 优化。
2025-01-30 20:04:34
1155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人