失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 关于《Spark实战(第2版)》 IBM 云和数据平台的高级副总裁Rob Thomas这样说

关于《Spark实战(第2版)》 IBM 云和数据平台的高级副总裁Rob Thomas这样说

时间:2021-07-09 05:22:12

相关推荐

关于《Spark实战(第2版)》 IBM 云和数据平台的高级副总裁Rob Thomas这样说

在 20 世纪,商业的规模效应主要由广度和分布所驱动。一家在全球拥有制造业务的公司具有内在的成本和分布优势,因而可生产更具竞争力的产品。一家在全球拥有门店的零售商拥有小公司无法比拟的分布优势。几十年来,这些规模效应推动了竞争优势。

互联网改变了这一切。如今,存在三种主要的规模效应:

● 网络——锁定,由忠诚网络驱动(Facebook、Twitter、Etsy 等)

● 规模经济——降低单位成本,由数量驱动(苹果公司、TSMC 等)

● 数据——卓越的机器学习和洞察力,由动态数据语料库驱动

在Big Data Revolution(Wiley,)一书中,我介绍了一些利用数据加强规模效应的公司。但在 年,就全世界范围的机构而言,大数据在很大程度上仍然是未开发的资产。分析操作系统Spark 是改变这种状况的助推剂。

Spark 一直是 IBM 改革创新、不断发展的催化剂,Spark 分析操作系统统一了数据源和数据访问,其统一的编程模型使其成为开发人员构建数据丰富的分析应用程序的最佳选择。Spark 减少了构建分析工作流的时间并降低了其复杂性,使构建者能专注于机器学习和 Spark 周遭的生态系统。

正如我们屡次所见,这个开源项目正以前所未有的速度和规模点燃创新。

《Spark实战(第2版)》将带你深入了解 Spark 的世界。它彰显技术的力量,描述Spark 生态系统的活力,探讨如何将Spark 投入到当今公司的实际应用程序。无论你是数据工程师、数据科学家、应用程序开发人员,还是 IT 运营者,本书都将为你揭示推动公司或社区创新所需要了解的工具和秘密。

IBM 的战略是以一个成功的开放平台及其周遭环境为基础,添加一些实质性以及差异化的内容。Spark 就是这样一个平台。在IBM,我们有无数成功的Spark 示例,当你踏上这段旅程后,你的公司将拥有同样成功的Spark 示例。

Spark 代表创新——一个分析操作系统将会带来层出不穷的新解决方案,释放大数据规模效应。Spark 也代表一个由精通 Spark 的数据科学家和数据分析师组成的社区,他们可快速地将今天的问

题转化为明天的解决方案。Spark 是历史上发展最快的开源项目之一。欢迎加入Spark!

——Rob Thomas

IBM 云和数据平台的高级副总裁

节选自《Spark实战(第2版)》一书

_____________________________________________________________________________j基本信息

书名:《Spark实战(第2版)》

ISBN: 9787302596783

定价:99.8元

作者译者:[法]吉恩·乔治·佩林(Jean-Georges Perrin) 著 林赐 译

出版时间:-3-1

Spark实战(第2版)【图片 价格 品牌 评论】-京东

目 录

第Ⅰ部分 通过示例讲解理论

第1章 Spark介绍 3

1.1 Spark简介及其作用 4

1.1.1 什么是Spark 4

1.1.2 Spark神力的四个支柱 5

1.2 如何使用Spark 7

1.2.1 数据处理/工程场景中的Spark 7

1.2.2 数据科学场景中的Spark 8

1.3 使用Spark,能做些什么 9

1.3.1 使用Spark预测NC餐饮行业的餐馆质量 10

1.3.2 Spark允许Lumeris进行快速数据传输 10

1.3.3 Spark分析CERN的设备日志 10

1.3.4 其他用例 11

1.4 为什么你应该喜欢数据帧 11

1.4.1 从Java角度了解数据帧 11

1.4.2 从RDBMS角度理解数据帧 12

1.4.3 数据帧的图形表示 12

1.5 第一个示例 13

1.5.1 推荐软件 13

1.5.2 下载代码 13

1.5.3 运行第一个应用程序 14

1.5.4 第一份代码 15

1.6 小结 16

第2章 架构和流程 17

2.1 构建思维模型 17

2.2 使用Java代码构建思维模型 18

2.3 运行应用程序 21

2.3.1 连接到主机 21

2.3.2 加载或提取CSV文件 22

2.3.3 转换数据 25

2.3.4 将数据帧中完成的工作保存到数据库中 26

2.4 小结 29

第3章 数据帧的重要作用 31

3.1 数据帧在Spark中的基本作用 32

3.1.1 数据帧的组织 32

3.1.2 不变性并非贬低之词 33

3.2 通过示例演示数据帧的使用 35

3.2.1 简单提取CSV后的数据帧 36

3.2.2 数据存储在分区中 40

3.2.3 挖掘模式 41

3.2.4 提取JSON后的数据帧 43

3.2.5 合并两个数据帧 48

3.3 数据帧Dataset<Row> 53

3.3.1 重用POJO 53

3.3.2 创建字符串数据集 54

3.3.3 来回转换 55

3.4 数据帧的祖先:RDD 60

3.5 小结 61

第4章 Spark的“惰性”本质 63

4.1 现实中懒惰但高效的示例 64

4.2 懒惰但高效的Spark示例 65

4.2.1 查看数据转换和数据操作的结果 65

4.2.2 数据转换的过程,逐步进行 66

4.2.3 数据转换/操作流程的后台代码 68

4.2.4 在182毫秒内创建700多万个数据点的奥秘 71

4.2.5 操作计时背后的奥秘 72

4.3 与RDBMS和传统应用程序进行比较 76

4.3.1 使用青少年生育率数据集 76

4.3.2 分析传统应用程序和Spark应用程序之间的区别 77

4.4 对于以数据为中心的应用程序而言,Spark的表现出乎意料 78

4.5 Catalyst是应用程序的催化器 79

4.6 小结 81

第5章 构建一个用于部署的简单应用程序 83

5.1 无数据提取的示例 83

5.1.1 计算π 84

5.1.2 计算近似值π的代码 85

5.1.3 Java中的lambda函数是什么 90

5.1.4 使用lambda函数估算π 92

5.2 与Spark交互 93

5.2.1 本地模式 94

5.2.2 集群模式 95

5.2.3 Scala和Python的交互模式 97

5.3 小结 102

第6章 部署简单的应用程序 105

6.1 示例之外:组件的作用 106

6.1.1 快速浏览组件及其之间的交互 107

6.1.2 Spark架构的故障排除技巧 110

6.1.3 知识拓展 110

6.2 构建集群 111

6.2.1 如何构建集群 111

6.2.2 设置环境 112

6.3 构建应用程序,在集群上运行 115

6.3.1 构建应用程序的超级JAR 115

6.3.2 使用Git和Maven构建应用程序 117

6.4 在集群上运行应用程序 119

6.4.1 提交超级JAR 119

6.4.2 运行应用程序 120

6.4.3 分析Spark的用户界面 121

6.5 小结 122

第Ⅱ部分 数据提取

第7章 从文件中提取数据 125

7.1 解析器的常见行为 126

7.2 从CSV中提取数据(比较复杂) 126

7.2.1 预期输出 128

7.2.2 代码 128

7.3 使用已知模式提取CSV 129

7.3.1 预期输出 130

7.3.2 代码 130

7.4 提取JSON文件 132

7.4.1 预期输出 134

7.4.2 代码 134

7.5 提取多行JSON文件 135

7.5.1 预期输出 137

7.5.2 代码 137

7.6 提取XML文件 138

7.6.1 预期输出 140

7.6.2 代码 140

7.7 提取文本文件 142

7.7.1 预期输出 143

7.7.2 代码 143

7.8 用于大数据的文件格式 144

7.8.1 传统文件格式的问题 144

7.8.2 Avro是基于模式的序列化格式 145

7.8.3 ORC是一种列式存储格式 145

7.8.4 Parquet也是一种列式存储格式 146

7.8.5 比较Avro、ORC和Parquet 146

7.9 提取Avro、ORC和Parquet文件 146

7.9.1 提取Avro 146

7.9.2 提取ORC 148

7.9.3 提取Parquet 150

7.9.4 用于提取Avro、ORC或Parquet的参考表格 151

7.10 小结 151

第8章 从数据库中提取数据 153

8.1 从关系数据库中提取数据 154

8.1.1 数据库连接备忘录 154

8.1.2 了解示例中使用的数据 155

8.1.3 预期输出 156

8.1.4 代码 157

8.1.5 可替代的代码 159

8.2 dialect的作用 160

8.2.1 什么是dialect 160

8.2.2 Spark提供的JDBC dialect 161

8.2.3 构建自定义dialect 161

8.3 高级查询和提取 163

8.3.1 使用WHERE子句进行过滤 163

8.3.2 在数据库中连接数据 166

8.3.3 执行数据提取和分区 168

8.3.4 高级功能总结 171

8.4 从Elasticsearch中提取数据 171

8.4.1 数据流 171

8.4.2 Spark提取的NYC餐馆数据集 172

8.4.3 从 Elasticsearch中提取NYC餐馆数据集的代码 173

8.5 小结 175

第9章 数据提取进阶:寻找数据源与构建自定义数据源 177

9.1 什么是数据源 179

9.2 直接连接数据源的好处 179

9.2.1 临时文件 180

9.2.2 数据质量脚本 181

9.2.3 按需提供数据 181

9.3 查找Spark软件包中的数据源 181

9.4 构建自己的数据源 181

9.4.1 示例项目的范围 182

9.4.2 数据源API和选项 183

9.5 幕后工作:构建数据源本身 185

9.6 使用注册器文件和广告器类 186

9.7 理解数据和模式之间的关系 188

9.7.1 数据源构建关系 189

9.7.2 关系内部 191

9.8 使用JavaBean构建模式 194

9.9 使用实用程序构建数据帧的神奇方法 196

9.10 其他类 201

9.11 小结 201

第10章 提取结构化流数据 203

10.1 什么是流数据 204

10.2 创建首个流数据 205

10.2.1 生成文件流数据 206

10.2.2 消费记录 208

10.2.3 获取记录,而非数据行 213

10.3 从网络流数据中提取数据 214

10.4 处理多个流数据 216

10.5 区分离散化流数据和结构化流数据 221

10.6 小结 221

第III部分 转换数据

第11章 使用SQL 225

11.1 使用Spark SQL 225

11.2 本地视图与全局视图之间的区别 229

11.3 混合使用数据帧API和Spark SQL 230

11.4 不要删除数据 233

11.5 进一步了解SQL 235

11.6 小结 235

第12章 转换数据 237

12.1 数据转换是什么 238

12.2 在记录层面进行数据转换的过程和示例 238

12.2.1 数据发现,了解数据的复杂性 240

12.2.2 数据映射,绘制过程 241

12.2.3 编写转换代码 244

12.2.4 审查数据转换,确保质量流程 249

12.2.5 如何排序 251

12.2.6 结束Spark数据转换的首次演示 251

12.3 连接数据集 251

12.3.1 仔细查看要连接的数据集 252

12.3.2 构建各县的高等教育机构列表 253

12.3.3 执行连接操作 258

12.4 执行更多的数据转换 263

12.5 小结 263

第13章 转换整个文档 265

13.1 转换整个文档及其结构 265

13.1.1 展平JSON文档 266

13.1.2 构建嵌套文档,用于数据传输和存储 270

13.2 静态函数背后的魔力 274

13.3 执行更多的数据转换 275

13.4 小结 275

第14章 使用自定义函数扩展数据转换 277

14.1 扩展Apache Spark 278

14.2 注册和调用UDF 279

14.2.1 在Spark中注册UDF 281

14.2.2 将UDF与数据帧API结合起来使用 282

14.2.3 使用SQL处理UDF 283

14.2.4 实现UDF 284

14.2.5 编写服务代码 285

14.3 使用UDF,确保数据高质量 287

14.4 考虑UDF的约束 289

14.5 小结 289

第15章 聚合数据 291

15.1 使用Spark聚合数据 291

15.1.1 简单回顾数据聚合 292

15.1.2 使用Spark执行基本的数据聚合 294

15.2 使用实时数据执行数据聚合 296

15.2.1 准备数据集 297

15.2.2 聚合数据,更好地了解学校 301

15.3 使用UDAF构建自定义的聚合操作 306

15.4 小结 311

第IV部分 百尺竿头,更进一步

第16章 缓存和检查点:增强Spark的性能 315

16.1 使用缓存和检查点可提高性能 315

16.1.1 Spark缓存的用途 317

16.1.2 Spark检查点的妙用 318

16.1.3 使用缓存和检查点 318

16.2 缓存实战 326

16.3 有关性能优化的知识拓展 335

16.4 小结 335

第17章 导出数据,构建完整数据管道 337

17.1 导出数据的主要概念 337

17.1.1 使用NASA数据集构建管道 338

17.1.2 将列转换为日期时间(datetime) 341

17.1.3 将置信度百分比转换为置信度等级 341

17.1.4 导出数据 342

17.1.5 导出数据:实际发生了什么 344

17.2 Delta Lake:使用系统核心的数据库 346

17.2.1 理解需要数据库的原因 346

17.2.2 在数据管道中使用Delta Lake 347

17.2.3 消费来自Delta Lake的数据 351

17.3 从Spark访问云存储服务 353

17.4 小结 354

第18章 探索部署约束:了解生态系统 355

18.1 使用YARN、Mesos和Kubernetes管理资源 356

18.1.1 使用内置的独立模式管理资源 356

18.1.2 在Hadoop环境中,使用YARN管理资源 357

18.1.3 Mesos是独立的资源管理器 358

18.1.4 Kubernetes编排容器 360

18.1.5 选择合适的资源管理器 360

18.2 与Spark共享文件 361

18.2.1 访问文件中包含的数据 362

18.2.2 通过分布式文件系统共享文件 362

18.2.3 访问共享驱动器或文件服务器上的文件 363

18.2.4 使用文件共享服务分发文件 364

18.2.5 访问Spark文件的其他选项 365

18.2.6 用于与Spark共享文件的混合解决方案 365

18.3 确保Spark应用程序的安全 365

18.3.1 保护基础架构的网络组件 366

18.3.2 保护Spark磁盘的使用 367

18.4 小结 367

附录部分内容通过封底二维码下载获取

附录A 安装Eclipse 369

附录B 安装Maven 375

附录C 安装Git 379

附录D 下载代码,启用Eclipse 381

附录E 企业数据的历史 387

附录F 有关关系数据库的帮助信息 391

附录G 静态函数使数据转换变得容易 397

附录H 简略的Maven备忘单 407

附录I 数据转换和数据操作的

参考资料 411

附录J Scala简介 421

附录K 在生产环境中安装Spark,以及一些提示 423

附录L 关于数据提取的参考资料 435

附录M 关于连接的参考资料 447

附录N 安装Elasticsearch和示例数据 459

附录O 生成流数据 465

附录P 有关流数据的参考资料 469

附录Q 有关导出数据的参考资料 479

附录R 遇到困难,寻找帮助 487

如果觉得《关于《Spark实战(第2版)》 IBM 云和数据平台的高级副总裁Rob Thomas这样说》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。