一.reduce和reduceByKey: 二.:RDD 的算子总结 RDD 的算子大部分都会生成一些专用的 RDD map, flatMap, filter 等算子会生成 MapPartitionsRDD coalesce, repartition 等算子会生成 CoalescedRDD 常见的 RDD 有两种类型 转换型的 RDD, Transformation 动作型的 RDD, Action 常见的 Transformation 类型的 RDD map flatMap filter gr…
一. 二.案例:详见代码.针对案例提出的6个问题: 假设要针对整个网站的历史数据进行处理, 量有 1T, 如何处理? 放在集群中, 利用集群多台计算机来并行处理 如何放在集群中运行? 简单来讲, 并行计算就是同时使用多个计算资源解决一个问题, 有如下四个要点 要解决的问题必须可以分解为多个可以并发计算的部分 每个部分要可以在不同处理器上被同时执行 需要一个共享内存的机制 需要一个总体上的协作机制来进行调度 如果放在集群中的话, 可能要对整个计算任务进行分解, 如何分解? 概述 对于 HDFS 中…
目标 SparkSQL 是什么 SparkSQL 如何使用 Table of Contents 1. SparkSQL 是什么 1.1. SparkSQL 的出现契机 1.2. SparkSQL 的适用场景 2. SparkSQL 初体验 2.3. RDD 版本的 WordCount 2.2. 命令式 API 的入门案例 2.2. SQL 版本 WordCount 3. [扩展] Catalyst 优化器 3.1. RDD 和 SparkSQL 运行时的区别 3.2. Catalyst 4. D…
1. 回顾和展望 1.1. Spark 编程模型的进化过程 1.2. Spark 的 序列化 的进化过程 1.3. Spark Streaming 和 Structured Streaming 2. Structured Streaming 入门案例 2.1. 需求梳理 2.2. 代码实现 2.3. 运行和结果验证 3. Stuctured Streaming 的体系和结构 3.1. 无限扩展的表格 3.2. 体系结构 4. Source 4.1. 从 HDFS 中读取数据 4.2. 从 Kaf…
如何判断宽窄依赖: =================================== 6. Spark 底层逻辑 导读 从部署图了解 Spark 部署了什么, 有什么组件运行在集群中 通过对 WordCount 案例的解剖, 来理解执行逻辑计划的生成 通过对逻辑执行计划的细化, 理解如何生成物理计划   如无特殊说明, 以下部分均针对于 Spark Standalone 进行介绍 部署情况 在 Spark 部分的底层执行逻辑开始之前, 还是要先认识一下 Spark 的部署情况, 根据部署情…
Spark Streaming 导读 介绍 入门 原理 操作 Table of Contents 1. Spark Streaming 介绍 2. Spark Streaming 入门 2. 原理 3. 操作 1. Spark Streaming 介绍 导读 流式计算的场景 流式计算框架 Spark Streaming 的特点 新的场景 通过对现阶段一些常见的需求进行整理, 我们要问自己一个问题, 这些需求如何解决? 场景 解释 商品推荐 京东和淘宝这样的商城在购物车, 商品详情等地方都有商品推…
4. 缓存 概要 缓存的意义 缓存相关的 API 缓存级别以及最佳实践 4.1. 缓存的意义 使用缓存的原因 - 多次使用 RDD 需求: 在日志文件中找到访问次数最少的 IP 和访问次数最多的 IP val conf = new SparkConf().setMaster("local[6]").setAppName("debug_string") val sc = new SparkContext(conf) val interimRDD = sc.textFi…
8. Dataset (DataFrame) 的基础操作 8.1. 有类型操作 8.2. 无类型转换 8.5. Column 对象 9. 缺失值处理 10. 聚合 11. 连接 8. Dataset (DataFrame) 的基础操作 导读 这一章节主要目的是介绍 Dataset 的基础操作, 当然, DataFrame 就是 Dataset, 所以这些操作大部分也适用于 DataFrame 有类型的转换操作 无类型的转换操作 基础 Action 空值如何处理 统计操作 8.1. 有类型操作 分…
目录: 1. 业务2. 流程分析3. 数据读取5. 数据清洗6. 行政区信息 6.1. 需求介绍 6.2. 工具介绍 6.3. 具体实现7. 会话统计 导读 本项目是 SparkSQL 阶段的练习项目, 主要目的是夯实同学们对于 SparkSQL 的理解和使用 数据集 2013年纽约市出租车乘车记录 需求 统计出租车利用率, 到某个目的地后, 出租车等待下一个客人的间隔 1. 业务 导读 数据集介绍 业务场景介绍 和其它业务的关联 通过项目能学到什么 数据集结构 字段 示例 示意 hack_li…
1.惰性加载: 在企业的大数据开发中,有时候会编写非常复杂的SQL语句,这些SQL语句可能有几百行甚至上千行.这些SQL语句,如果直接加载到JVM中,会有很大的内存开销.如何解决? 当有一些变量保存的数据较大时,但是不需要马上加载到JVM内存.可以使用惰性赋值来提高效率. 语法格式: lazy val/var 变量名 = 表达式 2.scala提供多种定义字符串的方式,将来我们可以根据需要来选择最方便的定义方式. 使用双引号 :   val/var 变量名 = “字符串” 使用插值表达式(有效避…