可以朗读
语音朗读
212千字
字数
2022-10-01
发行日期
展开全部
主编推荐语
通过实用技术和实战案例,让你轻松掌握大数据实时计算的方法。
内容简介
本书从大数据实时计算框架Spark的编程语言Scala入手,第1-4章重点介绍函数式编程语言Scala的基础语法、面向对象编程以及函数式编程等,再通过编程训练案例介绍Scala这门语言的实际开发应用,为读者后面学习Spark框架打下牢固的编程基础。第5-10章重点介绍Spark的安装部署、Spark Core编程、Spark SQL结构化数据处理以及Spark Streaming实时数据处理等,对它们进行详细的剖析和解读。最后,在第11章中通过网站运营指标统计和IP经纬度热力图分析两个实战开发项目,让读者充分掌握Spark大数据实时计算框架技术的应用与实操方法。
目录
- 版权信息
- 内容提要
- 前言
- 服务与支持
- 第1章 Scala入门基础
- 1.1 Scala语言的特色
- 1.2 搭建Scala开发环境
- 1.2.1 安装JDK
- 1.2.2 安装Scala SDK
- 1.2.3 安装IDEA Scala插件
- 1.3 Scala解释器
- 1.3.1 启动Scala解释器
- 1.3.2 执行Scala代码
- 1.3.3 退出Scala解释器
- 1.4 Scala语法基础
- 1.4.1 定义变量
- 1.4.2 惰性赋值
- 1.4.3 字符串
- 1.4.4 数据类型与运算符
- 1.4.5 条件表达式
- 1.5 Scala控制结构和函数
- 1.5.1 for表达式
- 1.5.2 while循环
- 1.5.3 函数
- 1.5.4 方法和函数的区别
- 1.6 方法
- 1.6.1 定义方法
- 1.6.2 方法参数
- 1.6.3 方法调用方式
- 1.7 数组
- 1.7.1 定长数组
- 1.7.2 变长数组
- 1.7.3 遍历数组
- 1.8 元组和列表
- 1.8.1 元组
- 1.8.2 列表
- 1.8.3 Set集合
- 1.9 Map映射
- 1.9.1 不可变Map
- 1.9.2 可变Map
- 1.9.3 Map基本操作
- 1.10 函数式编程
- 1.10.1 遍历(foreach)
- 1.10.2 使用类型推断简化函数定义
- 1.10.3 使用下画线简化函数定义
- 1.10.4 映射(map)
- 1.10.5 扁平化映射(flatMap)
- 1.10.6 过滤(filter)
- 1.10.7 排序
- 1.10.8 分组(groupBy)
- 1.10.9 聚合(reduce)
- 1.10.10 折叠(fold)
- 1.11 本章总结
- 1.12 本章习题
- 第2章 Scala面向对象编程
- 2.1 类与对象
- 2.2 定义和访问成员变量
- 2.3 使用下画线初始化成员变量
- 2.4 定义成员方法
- 2.5 访问修饰符
- 2.6 类的构造器
- 2.6.1 主构造器
- 2.6.2 辅助构造器
- 2.7 单例对象
- 2.7.1 定义单例对象
- 2.7.2 在单例对象中定义成员方法
- 2.7.3 工具类案例
- 2.8 main方法
- 2.8.1 定义main方法
- 2.8.2 实现App trait来定义入口
- 2.9 伴生对象
- 2.9.1 定义伴生对象
- 2.9.2 apply和unapply方法
- 2.10 继承
- 2.10.1 定义语法
- 2.10.2 类继承
- 2.10.3 单例对象继承
- 2.10.4 override和super
- 2.11 类型判断
- 2.11.1 isInstanceOf和asInstanceOf方法
- 2.11.2 getClass和classOf
- 2.12 抽象类
- 定义抽象类
- 2.13 匿名内部类
- 2.14 特质
- 2.14.1 trait作为接口使用
- 2.14.2 trait中定义具体的字段和抽象字段
- 2.14.3 使用trait实现模板模式
- 2.14.4 对象混入trait
- 2.14.5 使用trait实现调用链模式
- 2.14.6 trait调用链
- 2.14.7 trait的构造机制
- 2.14.8 trait继承类
- 2.15 本章总结
- 2.16 本章习题
- 第3章 Scala编程高级应用
- 3.1 样例类
- 3.1.1 定义样例类
- 3.1.2 样例类方法
- 3.1.3 样例对象
- 3.2 模式匹配
- 3.2.1 简单匹配
- 3.2.2 守卫
- 3.2.3 匹配类型
- 3.2.4 匹配集合
- 3.2.5 变量声明中的模式匹配
- 3.2.6 匹配样例类
- 3.3 Option类型
- 3.4 偏函数
- 3.5 正则表达式
- 3.6 异常处理
- 3.6.1 捕获异常
- 3.6.2 抛出异常
- 3.7 提取器
- 定义提取器
- 3.8 泛型
- 3.8.1 定义泛型方法
- 3.8.2 定义泛型类
- 3.8.3 上下界
- 3.8.4 非变、协变和逆变
- 3.9 Actor
- 3.9.1 Java并发编程的问题
- 3.9.2 Actor并发编程模型
- 3.9.3 Java并发编程与Actor并发编程
- 3.10 Actor编程案例
- 3.10.1 创建Actor
- 3.10.2 发送消息/接收消息
- 3.10.3 持续接收消息
- 3.10.4 共享线程
- 3.10.5 发送和接收自定义消息
- 3.10.6 基于Actor实现WordCount案例
- 3.11 本章总结
- 3.12 本章习题
- 第4章 Scala函数式编程思想
- 4.1 作为值的函数
- 4.2 匿名函数
- 4.3 柯里化
- 4.4 闭包
- 4.5 隐式转换
- 4.6 隐式参数
- 4.7 Akka并发编程框架
- 4.7.1 Akka特性
- 4.7.2 Akka通信过程
- 4.7.3 创建ActorSystem
- 4.8 Akka编程入门案例
- 4.8.1 实现步骤
- 4.8.2 配置Maven模块依赖
- 4.9 Akka定时任务
- 4.10 实现两个进程之间的通信
- 4.11 本章总结
- 4.12 本章习题
- 第5章 Spark安装部署与入门
- 5.1 Spark简介
- 5.1.1 MapReduce与Spark
- 5.1.2 Spark组件
- 5.1.3 Spark生态系统
- 5.1.4 Spark架构
- 5.1.5 Spark运行部署模式
- 5.1.6 Spark远程过程调用协议
- 5.2 Spark环境搭建
- 5.2.1 本地模式部署
- 5.2.2 Standalone集群模式
- 5.2.3 Standalone-HA集群模式
- 5.2.4 YARN集群模式
- 5.2.5 Spark命令
- 5.3 编写Spark应用程序
- 5.3.1 Maven简介
- 5.3.2 安装Maven
- 5.3.3 Spark开发环境搭建
- 5.3.4 配置pom.xml文件
- 5.3.5 开发应用程序——本地运行
- 5.3.6 修改应用程序——集群运行
- 5.3.7 集群硬件配置说明
- 5.4 本章总结
- 5.5 本章习题
- 第6章 SparkCore编程
- 6.1 RDD概念与详解
- 6.1.1 RDD简介
- 6.1.2 RDD的主要属性
- 6.1.3 小结
- 6.2 RDD API应用程序
- 6.3 RDD的方法(算子)分类
- 6.3.1 Transformation算子
- 6.3.2 Action算子
- 6.4 基础练习
- 6.4.1 实现WordCount案例
- 6.4.2 创建RDD
- 6.4.3 map
- 6.4.4 filter
- 6.4.5 flatMap
- 6.4.6 sortBy
- 6.4.7 交集、并集、差集、笛卡尔积
- 6.4.8 groupByKey
- 6.4.9 groupBy
- 6.4.10 reduce
- 6.4.11 reduceByKey
- 6.4.12 repartition
- 6.4.13 count
- 6.4.14 top
- 6.4.15 take
- 6.4.16 first
- 6.4.17 keys、values
- 6.4.18 案例
- 6.5 实战案例
- 6.5.1 统计平均年龄
- 6.5.2 统计人口信息
- 6.5.3 在IDEA中实现WordCount案例
- 6.5.4 小结
- 6.6 RDD持久化缓存
- 代码演示
- 6.7 持久化缓存API详解
- 6.7.1 persist方法和cache方法
- 6.7.2 存储级别
- 6.7.3 小结
- 6.8 RDD容错机制Checkpoint
- 6.8.1 代码演示
- 6.8.2 容错机制Checkpoint详解
- 6.9 本章总结
- 6.10 本章习题
- 第7章 SparkCore运行原理
- 7.1 RDD依赖关系
- 7.1.1 窄依赖与宽依赖
- 7.1.2 对比窄依赖与宽依赖
- 7.2 DAG的生成和划分阶段
- 7.2.1 DAG的生成
- 7.2.2 DAG划分阶段
- 7.2.3 小结
- 7.3 Spark原理初探
- 7.3.1 Spark相关的应用概念
- 7.3.2 Spark基本流程概述
- 7.3.3 流程图解
- 7.3.4 RDD在Spark中的运行过程
- 7.3.5 小结
- 7.4 RDD累加器和广播变量
- 7.4.1 累加器
- 7.4.2 广播变量
- 7.5 RDD的数据源
- 7.5.1 普通文本文件
- 7.5.2 Hadoop API
- 7.5.3 SequenceFile
- 7.5.4 对象文件
- 7.5.5 HBase
- 7.5.6 JDBC
- 7.6 本章总结
- 7.7 本章习题
- 第8章 Spark SQL结构化数据处理入门
- 8.1 数据分析方式
- 8.1.1 命令式
- 8.1.2 SQL式
- 8.2 Spark SQL的发展
- 8.3 数据分类和Spark SQL适用场景
- 8.3.1 结构化数据
- 8.3.2 半结构化数据
- 8.3.3 非结构化数据
- 8.4 Spark SQL特点
- 8.5 Spark SQL数据抽象
- 8.6 DataFrame简介
- 8.7 Dataset简介
- 8.8 RDD、DataFrame和Dataset的区别
- 8.9 Spark SQL初体验
- 8.9.1 SparkSession入口
- 8.9.2 创建DataFrame
- 8.9.3 创建Dataset
- 8.9.4 两种查询风格
- 8.10 本章总结
- 8.11 本章习题
- 第9章 Spark SQL结构化数据处理高级应用
- 9.1 使用IDEA开发Spark SQL
- 9.1.1 创建DataFrame和Dataset
- 9.1.2 花式查询
- 9.1.3 相互转换
- 9.1.4 Spark SQL词频统计实战
- 9.2 Spark SQL多数据源交互
- 9.3 Spark SQL自定义函数
- 9.3.1 自定义函数分类
- 9.3.2 UDF
- 9.3.3 UDAF
- 9.4 Spark on Hive
- 9.4.1 开启Hive的元数据库服务
- 9.4.2 Spark SQL整合Hive元数据库
- 9.4.3 使用Spark SQL操作Hive表
- 9.5 本章总结
- 9.6 本章习题
- 第10章 Spark Streaming核心编程
- 10.1 场景需求
- 10.2 Spark Streaming概述
- 10.2.1 Spark Streaming的特点
- 10.2.2 Spark Streaming实时计算所处的位置
- 10.3 Spark Streaming原理
- 10.3.1 基本流程
- 10.3.2 数据模型
- 10.4 DStream相关的API
- 10.4.1 Transformation
- 10.4.2 Output
- 10.5 Spark Streaming原理总结
- 10.6 Spark Streaming实战
- Spark Streaming第一个案例WordCount
- 10.7 updateStateByKey算子
- 10.7.1 WordCount案例问题分析
- 10.7.2 代码实现
- 10.7.3 执行步骤
- 10.8 reduceByKeyAndWindow算子
- 10.8.1 图解reduceByKeyAndWindow算子
- 10.8.2 代码实现
- 10.8.3 执行步骤
- 10.9 统计一定时间内的热搜词
- 10.9.1 需求分析
- 10.9.2 代码实现
- 10.9.3 执行步骤
- 10.10 整合Kafka
- 10.10.1 Kafka基本概念
- 10.10.2 Kafka的特性
- 10.10.3 核心概念图解
- 10.10.4 Kafka集群部署
- 10.10.5 Kafka常用命令
- 10.10.6 Receiver接收方式
- 10.10.7 Direct直连方式
- 10.10.8 spark-streaming-kafka-0-8版本
- 10.10.9 spark-streaming-kafka-0-10版本
- 10.11 本章总结
- 10.12 本章习题
- 第11章 Spark综合项目实战
- 11.1 网站运营指标统计项目
- 11.1.1 需求分析
- 11.1.2 数据分析
- 11.1.3 代码实现
- 11.2 热力图分析项目
- 11.2.1 需求分析
- 11.2.2 数据分析
- 11.2.3 项目开发
- 11.3 本章总结
- 11.4 本章习题
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。