标签: scala
共 34 篇文章
大数据-278 Spark MLlib - 基础介绍 机器学习算法 梯度提升树 GBDT案例 详解
GBDT 案例实战,手把手带你完成从残差计算到回归树构建与迭代训练的全过程,结合图示详细解析,最终预测精准输出!
大数据-276 Spark MLlib - 基础介绍 机器学习算法 Bagging和Boosting区别 GBDT梯度提升树
本文介绍了机器学习中Bagging与Boosting的区别,以及GBDT(梯度提升决策树)算法原理。主要内容包括:1)Bagging和Boosting在数据采样、投票方式、学习顺序和应用场景上的差异;2)GBDT的基本概念和使用CART回归树的原因;3)回归决策树的构建流程,包括最优切分点选择、区域划分和输出值计算;4)通过具体案例演示回归树的生成过程,包括损失函数计算和递归划分策略。
大数据-277 Spark MLlib - 基础介绍 机器学习算法 Gradient Boosting GBDT算法原理 高效实现
本文介绍了梯度提升树(GBDT)算法的原理与应用。首先通过通俗例子说明提升树的基本思想,然后详细解析算法流程,包括负梯度计算、回归树拟合和模型更新等关键步骤。文章比较了GBDT与传统提升树的区别,并阐述了GBDT在回归和分类问题中的优势。此外,还介绍了XGBoost、LightGBM等高效实现及其特性,分析了GBDT的适用场景和局限性。
大数据-275 Spark MLlib - 基础介绍 机器学习算法 集成学习 随机森林 Bagging Boosting
本文系统介绍了机器学习中的集成学习方法。主要内容包括:1)集成学习的基本定义与分类,通过结合多个模型提升预测性能;2)Bagging方法原理及应用,重点讲解随机森林的实现过程;3)Boosting方法的核心思想,包括Adaboost等算法的逐步增强机制。文章通过图示直观展示了不同集成学习技术的运作流程,比较了它们在解决欠拟合和过拟合问题上的作用。
大数据-274 Spark MLlib - 基础介绍 机器学习算法 剪枝 后剪枝 ID3 C4.5 CART
本文系统介绍了决策树的预剪枝与后剪枝原理,对比了ID3、C4.5和CART三种主流算法的核心差异,包括分裂标准、属性支持类型和剪枝方法。重点阐述了信息增益、信息增益率与基尼系数的计算原理,详细讲解了从树生成到剪枝的完整流程,并通过Spark MLlib中的Scala代码实例演示了决策树分类器的实现过程。
大数据-273 Spark MLlib - 基础介绍 机器学习算法 决策树 分类原则 分类原理 基尼系数 熵
本文介绍了决策树的基本概念、分类原则和分类原理。决策树是一种非线性有监督分类模型,通过树形结构进行属性判断和分类。分类时应选择能将数据分类更纯粹的节点作为根节点,减少树高和训练次数。分类原理涉及熵、条件熵、信息增益等概念:熵衡量信息混乱程度,信息增益反映分类前后熵的变化,基尼系数也可表示样本混乱程度。
大数据-272 Spark MLlib - 基础介绍 机器学习算法 逻辑回归
本文介绍了逻辑回归的基本原理、应用场景和在Spark MLlib中的实现。逻辑回归是一种高效二分类算法,广泛应用于广告点击率、垃圾邮件识别等领域。文章详细讲解了逻辑回归的输入函数、Sigmoid激活函数和损失计算方法,并通过糖尿病预测案例演示了如何使用Spark MLlib的LogisticRegressionWithSGD模块进行模型训练与评估。
大数据-271 Spark MLlib - 基础介绍 机器学习算法 线性回归 场景 定义 损失 优化
线性回归(Linear Regression)是利用回归方程(函数)对一个或多个自变量和因变量之间关系进行建模的一种分析方式。特点:只有一个自变量的情况称为单变量回归,多于一个自变量情况的叫做多元回归。
大数据-268 实时数仓 - ODS层 将 Kafka 中的维度表写入 DIM
在 Kafka 中写入维度表(DIM)通常涉及将实时或批处理数据从 Kafka 主题读取,并根据数据流中的信息更新维度表。维度表存储与业务数据相关的维度信息,如客户、产品、地理位置等,用于支持 OLAP 查询。
大数据-269 实时数仓 - DIM DW ADS 层处理 Scala实现将数据写出HBase等
DW(Data WareHouse 数据仓库层),包含 DWD、DWS、DIM 层数据加工而成,主要完成数据架构与整合,建立一致性的维度,构建可复用的面向分析和统计的明细事实表,以及汇总公共粒度的指标。基于 DW 数据,整合汇总成主题域的服务数据,用于提供后续的业务查询等。在分析交易过程时,可以通过卖家、买家、商品和时间等维度描述交易发生的环境,所以维度的作用一般是查询约束、分类汇总以及排序等。转换 area 表 到 地区ID、地区的名字、城市ID、城市的名字、省份 ID、省份的名字 到 HBase 中。
大数据-266 实时数仓 - Canal 对接 Kafka 客户端测试
本文介绍了阿里巴巴开源的Canal工具,它通过解析MySQL的binlog实现数据库变更的数据捕获(CDC)。文章展示了如何将Canal与Kafka集成,实现数据库变更到消息队列的实时推送,包含INSERT、UPDATE、DELETE操作的JSON格式示例。
大数据-267 实时数仓 - ODS Lambda架构 Kappa架构 核心思想
在互联网企业中,常见的 ODS 数据有业务日志数据(Log)和业务 DB 数据两类,对于业务 DB 数据来说,从 MySQL 等关系型数据库的业务数据进行采集,然后导入到 Hive 中,是进行数据仓库生产的重要环节。它的作用是存储大量的结构化数据,并能进行频繁和可重复的分析。为了彻底解决这些问题,我们逐步实时 binlog 采集进行实时处理,binlog 是 MySQL的二进制日志,记录了 MySQL 中发生的所有数据的变化,MySQL 集群自身的主从同步就是基于 binlog 做的。
大数据-265 实时数仓 - Canal 部署安装 启动服务 常见问题解决
Canal 是阿里巴巴开源的数据同步工具,用于 MySQL 数据库的增量日志解析和同步。它模拟 MySQL 从库协议,获取主库的 binlog 日志,从而实现实时数据捕获和传输,常用于数据迁移、缓存更新和搜索引擎同步等场景。Canal 集群模式通常结合 ZooKeeper 实现分布式协调,保证高可用性和负载均衡。
大数据-263 实时数仓 - Canal 工作原理 工作流程 MySQL Binlog基本介绍
Canal 是一款用于 MySQL 数据库 binlog 增量订阅和消费的开源工具。它主要用于解决数据同步和分布式事务问题,支持将数据库变更同步到其他系统中,比如消息队列、大数据平台等。Master 主库将改变记录写进二进制 binary log 中Slave 从库向 MySQL Master 发送 DUMP 协议,将 Master 主库的 binary log events 拷贝到它的中继日志(relay log)。Slave 从库读取并重做中继日志中的事件,将改变的数据同步到自己的数据库。
大数据-264 实时数仓 - Canal MySQL的binlog研究 存储目录 变动信息 配置MySQL
MySQL 的二进制日志(Binary Log,简称 binlog)是 MySQL 数据库中的一种日志文件类型,它记录了对数据库执行的所有更改操作(不包括 SELECT 和 SHOW 等查询操作)。它主要用于数据恢复、复制和审计等场景。
大数据-262 实时数仓 - Canal 同步数据 介绍背景原理与优势 拉链表 实时统计
阿里巴巴 B2B 公司,由于业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,从 2010 年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅、消费的业务。Canal是用 Java 开发的基于数据库增量日志解析,提供增量数据订阅、消费的中间件。目前,Canal主要支持了 MySQL 的 Binlog 解析,解析完成后才利用 Canal Client 用来处理获得相关数据。
大数据-261 实时数仓 - 业务数据库表结构 交易订单、订单产品、产品分类、商家店铺、地域组织表
实时数仓是一种数据仓库系统,区别于传统批处理数仓,它强调低延迟、高吞吐和高可用性。实时数仓能够处理流式数据或近实时的数据流,使企业能够及时监控关键指标并做出决策。
大数据-89 Spark Streaming 整合 Kafka:Receiver 与 Direct 模式全解析
详解 Spark Streaming 接入 Kafka 的两种模式:基于 Receiver 的高级 API 与 Direct 直连模式的架构差异、偏移量管理、Exactly-Once 语义保证及完整 Scala 代码实现。
大数据-87 Spark DStream 转换算子详解:map、reduceByKey、transform 实战
系统梳理 Spark Streaming DStream 的无状态转换算子与 transform 高级操作,通过黑名单过滤案例演示 leftOuterJoin、SQL、广播变量三种实现方式。
大数据-88 Spark Streaming 窗口操作与状态追踪:updateStateByKey 与 mapWithState
深入讲解 Spark Streaming 有状态计算:窗口操作参数配置、reduceByKeyAndWindow 热词统计、updateStateByKey 全量状态维护与 mapWithState 增量优化,附完整 Scala 代码。
大数据-85 Spark Streaming 入门:从 DStream 到 Structured Streaming 的演进
介绍 Spark 实时计算的两代框架:DStream 微批处理模型的架构与局限,以及 Structured Streaming 如何通过无界表模型和 Catalyst 优化解决 EventTime 处理、API 一致性等问题。
大数据-86 Spark Streaming 数据源详解:文件流、Socket、RDD 队列流
全面讲解 Spark Streaming 三种基础数据源的原理与实现:文件流监控目录、Socket TCP 接入、RDD 队列模拟测试,附完整 Scala 代码示例。
大数据-83 SparkSQL 语句实战:DataFrame 操作、SQL 查询与 Hive 集成
介绍 SparkSQL 的核心使用方式,包括 DataFrame API、SQL 查询语法、lateral view explode 等高级功能,以及如何通过 enableHiveSupport 集成 Hive 元数据与读写 Hive 表。
大数据-84 SparkSQL 内核原理:五种 Join 策略与 Catalyst 优化器解析
深入解析 SparkSQL 的五种 Join 执行策略(BHJ、SHJ、SMJ、Cartesian、BNLJ)的选择条件与适用场景,以及 Catalyst 优化器从 SQL 解析到代码生成的完整处理流程。
大数据-81 SparkSQL 核心抽象:RDD、DataFrame、Dataset 与 SparkSession 详解
深入对比 Spark 三大数据抽象 RDD、DataFrame、Dataset 的特性与适用场景,介绍 SparkSession 统一入口,并演示各抽象之间的相互转换方法。
大数据-82 SparkSQL 算子详解:Transformation 与 Action 操作实战
系统梳理 SparkSQL 的 Transformation 和 Action 算子,涵盖 select、filter、join、groupBy、union 等操作,并通过实际测试用例演示其用法与性能优化技巧。
大数据-80 SparkSQL 入门:SQL 与分布式计算的融合
系统介绍 SparkSQL 的演进历史、核心抽象 DataFrame/Dataset、Catalyst 优化器原理,以及与 Hive/HDFS 多数据源集成的实战用法。
大数据-77 Spark RDD 容错机制:Checkpoint 原理与最佳实践
详解 Spark Checkpoint 的执行流程、与 persist/cache 的核心区别、分区器策略,以及在迭代算法和长依赖链场景下的最佳使用实践。
大数据-78 Spark 广播变量:高效共享只读数据
详解 Spark 广播变量的工作原理、配置参数与最佳实践,以及利用广播实现 MapSideJoin 替代 shuffle join 的性能优化方案。
大数据-75 Spark Super WordCount:文本清洗 + 词频统计 + MySQL 持久化
实现一个完整的生产级词频统计流水线:小写转换、标点去除、停用词过滤、词频计数,最终通过 foreachPartition 高效写入 MySQL,对比逐条插入与分区批量写入的性能差异。
大数据-76 Spark 序列化机制与 RDD 执行原理
深入讲解 Spark Driver-Executor 进程通信、Java/Kryo 序列化选型、闭包序列化问题排查,以及 RDD 依赖、Stage 划分和持久化存储级别。
大数据-73 Spark + Scala 实现 WordCount 入门实践
使用 Spark + Scala 和 Spark + Java 两种方式实现分布式 WordCount,详解 RDD 五步处理流程、Maven 项目配置和 spark-submit 提交命令。
大数据-74 Spark Scala 实战:蒙特卡洛求 Pi 与共同好友分析
通过两个经典案例深入 Spark RDD 编程:蒙特卡洛方法分布式估算 π 值,以及两种思路实现社交网络共同好友分析,对比笛卡尔积与数据变换的性能差异。
大数据-72 Spark Action 操作全景解析
全面介绍 Spark RDD 的 Action 操作,涵盖数据收集、统计聚合、元素检索、存储写出等类别,并详解 Key-Value RDD 的 groupByKey、reduceByKey、join 等核心算子。