• 高性能Spark
21年品牌 40万+商家 超1.5亿件商品

高性能Spark

全新正版 极速发货

35.28 3.6折 98 全新

库存28件

广东广州
认证卖家担保交易快速发货售后保障

作者(美)霍顿·卡劳,(美)雷切尔·沃伦

出版社中国电力出版社

ISBN9787519863531

出版时间2022-01

装帧平装

开本16开

定价98元

货号1202593086

上书时间2024-09-04

谢岳书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
目录
前言 .1

 章 高性能Spark 介绍 7

1.1 Spark 是什么以及性能的重要性 .7

1.2 你可以从本书中得到什么 8

1.3 Spark 版本 .9

1.4 为什么是 Scala ? 9

1.4.1 成为一名 Spark 专家必须要学习一点 Scala .9

1.4.2 Spark 的 Scala API 比 Java API 更好用  10

1.4.3 Scala 比 Python 更高效  10

1.4.4 为什么不用 Scala ?  11

1.4.5 学习 Scala  11

1.5 小结  12

第2 章 Spark 运行原理 .13

2.1 Spark 如何融入大数据生态系统  14

2.2 Spark 并行计算模型:RDD  16

2.2.1 惰性求值  17

2.2.2 内存持久化和内存管理  20

2.2.3 不可变性和 RDD 接口 . 21

2.2.4 RDD 的类型  23

2.2.5 RDD 上的函数:转换与行动  24

2.2.6 宽依赖和窄依赖  25

2.3 Spark 作业调度 . 27

2.3.1 应用程序间的资源分配  27

2.3.2 Spark 应用程序 . 28

2.4 Spark Job 剖析  29

2.4.1 有向无环图(DAG)  30

2.4.2 作业(Job)  31

2.4.3 阶段(Stage)  31

2.4.4 任务(Task)  32

2.5 小结  34

第 3 章 DataFrame、Dataset 和Spark SQL 35

3.1 从 SparkSession(或者 HiveContext 和 SQLContext)入门 . 36

3.2 Spark SQL 依赖  39

3.2.1 管理 Spark 依赖  39

3.2.2 避免使用 Hive JAR  40

3.3 schema 基础  41

3.4 DataFrame API  45

3.4.1 转换  45

3.4.2 基于多个 DataFrame 的转换 . 56

3.4.3 普通的 SQL 查询以及与 Hive 数据交互 . 57

3.5 DataFrame 和 Dataset 中的数据表示 . 58

3.6 数据加载和保存函数 . 59

3.6.1 DataFrameWriter 和 DataFrameReader . 60

3.6.2 格式  60

3.6.3 保存模式  70

3.6.4 分区(发现和写入) . 70

3.7 Dataset  71

3.7.1 与 RDD、DataFrame 和本地集合的互操作性  72

3.7.2 编译时强类型  73

3.7.3 简易函数式转换操作(类似 RDD) . 74

3.7.4 关系型转换操作  74

3.7.5 多 Dataset 关系转换操作 . 75

3.7.6 Dataset 的分组操作  75

3.8 使用用户自定义的函数和聚合函数(UDF、UDAF)进行扩展 . 76

3.9 查询优化器 . 79

3.9.1 逻辑和物理计划  79

3.9.2 代码生成  79

3.9.3 大型查询计划和迭代算法  80

3.10 调试 Spark SQL 查询  80

3.11 JDBC/ODBC 服务器  81

3.12 小结 . 82

第 4 章 Join (SQL 和Spark Core) 84

4.1 Spark Core 中的 Join . 84

4.1.1 选择 Join 类型  86

4.1.2 选择执行计划  88

4.2 Spark SQL 中的 Join  91

4.2.1 DataFrame 的 Join  91

4.2.2 Dataset 的 Join  95

4.3 小结  96

第 5 章 高效的转换 .97

5.1 窄转换与宽转换  98

5.1.1 对于性能的影响  100

5.1.2 对于容错的影响  101

5.1.3 coalesce 的特殊情况  102

5.2 转换会返回什么类型的 RDD . 102

5.3 最小化对象创建成本  104

5.3.1 重用现有对象 . 104

5.3.2 使用更小的数据结构  108

5.4 mapPartitions 迭代器到迭代器的转换  111

5.4.1 什么是迭代器到迭代器的转换?  112

5.4.2 空间和时间优势  113

5.4.3 案例 . 114

5.5 集合操作  117

5.6 降低初始化开销  118

5.6.1 共享变量  119

5.6.2 广播变量  119

5.6.3 累加器  121

5.7 重用 RDD . 125

5.7.1 重用的案例  126

5.7.2 判断重新计算是否足够划算  129

5.7.3 重用类型:缓存、持久化、检查点、shuffle 文件  130

5.7.4 Alluxio(之前的 Tachyon)  135

5.7.5 LRU 缓存 . 135

5.7.6 繁忙集群的注意事项  137

5.7.7 与累加器交互 . 138

5.8 小结 . 139

第 6 章 处理键值对数据 . 140

6.1 金发女孩案例 . 142

6.1.1 金发女孩之版本 0:迭代方案  143

6.1.2 如何使用 PairRDDFunctions 和 OrderedRDDFunctions  146

6.2 键值对上的行动操作  147

6.3 groupByKey 函数有什么风险 . 148

6.3.1 金发女孩之版本 1:groupByKey 方案  148

6.3.2 为什么 groupByKey 会失败  150

6.4 选择聚合操作 . 152

6.5 涉及多个 RDD 的操作 156

6.6 分区器和键值对数据  157

6.6.1 使用 Spark 的分区器对象 . 158

6.6.2 哈希分区  158

6.6.3 范围分区  159

6.6.4 自定义分区  160

6.6.5 保留跨不同转换的分区信息  160

6.6.6 利用协同位置(Co-located)和协同分区(Co-Partitioned)的 RDD 161

6.6.7 PairRDDFunctions 中关于映射和分区函数的字典  163

6.7 OrderedRDDFunctions 字典  165

6.8 二级排序和 repartitionAndSortWithinPartitions  167

6.8.1 在按键分组和按值排序的函数中利用repartitionAndSortWithinPartitions  168

6.8.2 如何不按照两个排序键排序  172

6.8.3 金发女孩之版本 2:二级排序  172

6.8.4 金发女孩问题的另外一种不同解法 . 176

6.8.5 金发女孩之版本 3:对单元格值排序 . 181

6.9 掉队检测与不均衡数据 . 182

6.9.1 再次回到金发女孩问题 . 184

6.9.2 金发女孩之版本 4:在每个分区上归并为不同值  184

6.10 小结  191

第 7 章 Scala 之外  192

7.1 JVM 之内、Scala 之外  194

7.2 Scala 之外、JVM 之外  198

7.2.1 PySpark 工作原理 . 198

7.2.2 SparkR 工作原理  207

7.2.3 Spark.jl(Julia Spark)  209

7.2.4 Eclair JS 工作原理  210

7.2.5 Spark 基于公共语言运行时(CLR),C# 及类似语言  211

7.3 在 Spark 中调用其他语言 . 211

7.3.1 使用管道及类似工具  211

7.3.2 JNI  213

7.3.3 Java 本地访问(JNA) . 216

7.3.4 一切的背后都是 FORTRAN  217

7.3.5 谈谈 GPU . 218

7.4 未来 . 219

7.5 小结 . 219

第 8 章 测试和验证  221

8.1 单元测试  221

8.1.1 一般 Spark 单元测试  222

8.1.2 模拟 RDD . 227

8.2 获取测试数据 . 228

8.2.1 生成大数据集 . 229

8.2.2 抽样 . 230

8.3 用 ScalaCheck 检查属性  232

8.4 集成测试  235

8.5 性能验证  237

8.5.1 用于性能验证的 Spark 计数器  237

8.5.2 性能验证相关项目  238

8.6 作业验证  239

8.7 小结 . 240

第 9 章 Spark MLlib 和ML  241

9.1 在 Spark MLlib 和 Spark ML 之间选择 . 241

9.2 使用 MLlib  242

9.2.1 MLlib 入门(组织和导入)  242

9.2.2 MLlib 特征编码和数据准备  244

9.2.3 特征缩放和选择  248

9.2.4 MLlib 模型训练 . 249

9.2.5 预测 . 250

9.2.6 服务和持久化 . 251

9.2.7 模型评估  254

9.3 使用 Spark ML  254

9.3.1 Spark ML 组织和导入  254

9.3.2 管道阶段  256

9.3.3 参数解释  257

9.3.4 数据编码  258

9.3.5 数据清洗  261

9.3.6 Spark ML 模型  261

9.3.7 整合成管道  262

9.3.8 训练管道  263

9.3.9 访问单个阶段 . 264

9.3.10 数据持久化和 Spark ML . 264

9.3.11 使用自定义算法扩展 Spark ML 管道  267

9.3.12 模型和管道持久化与 Spark ML 服务  275

9.4 一般服务考量因素  276

9.5 小结 . 276

第 10 章 Spark 组件和包 278

10.1 基于 Spark 的流处理  280

10.1.1 Source 和 Sink . 281

10.1.2 批处理间隔  283

10.1.3 数据 checkpoint 间隔  284

10.1.4 DStream 的注意事项  284

10.1.5 Structured Streaming 的考量因素  286

10.1.6 高可用性模式(或处理 Driver 程序故障或进行 checkpoint)  294

10.2 GraphX  295

10.3 使用社区包和库  295

10.4 小结  298

附录 调优、调试以及开发者容易忽略的其他问题  301

内容摘要
通过本书,你可以了解到:Spark SQL的新接口如何为SQL的RDD数据结构提升性能。Spark Core与Spark SQL中数据join的不同选择方式。充分利用标准RDD转换的技术。如何解决Spark中键值范式的性能问题。不借助Scala或其他JVM语言来编写高性能的Spark代码。采用改进建议后,如何来测试其功能及性能情况。使用Spark MLlib和Spark ML机器学习库。Spark的流处理组件、外部的社区扩展包。

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP