×
暂无评论
图文详情
  • ISBN:9787302596783
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:368
  • 出版时间:2022-05-30
  • 条形码:9787302596783 ; 978-7-302-59678-3

本书特色

企业数据的分析始于读取、过滤和合并来自多个数据源的文件和数据流。Spark数据处理引擎是这方面的佼佼者,可处理各种量级的数据,其传输速度比Hadoop 系统快100倍。得益于SQL的支持、直观的界面和简单的多语言API,你可轻松使用Spark,而不必学习复杂的新型生态系统。 《Spark实战(第2版)》将引导你创建端到端分析应用程序。在本书中,你可学习基于Java的有趣示例,包括用于处理NASA卫星数据的完整数据管道。你还可查看托管在GitHub.上的有关Java、Python和Scala的代码示例, 并探索、修改此代码。此外,本书的附录为你提供速查表,帮助你安装工具和理解特定的Spark术语。

内容简介

  企业数据的分析始于读取、过滤和合并来自多个数据源的文件和数据流。Spark数据处理引擎是这方面的佼佼者,可处理各种量级的数据,其传输速度比Hadoop系统快100倍。得益于SQL的支持、直观的界面和简单的多语言API,你可轻松使用Spark,而不必学习复杂的新型生态系统。  《Spark实战(第2版)》将引导你创建端到端分析应用程序。在书中,你可学习基于Java的有趣示例,包括用于处理NASA卫星数据的完整数据管道。你还可查看托管在GitHub上的有关Java、Python和Scala的代码示例,并探索、修改此代码。此外,《Spark实战(第2版)》的附录为你提供速查表,帮助你安装工具和理解特定的Spark术语。  主要内容  用Java编写的Spark应用程序  Spark应用架构  提取文件、数据库、数据流和Elasticsearch的数据  使用Spark SQL查询分布式数据集  阅读门槛  《Spark实战(第2版)》读者不需要具备有关Spark、Scala或Hadoop的经验。

目录

PAGE IV Spark实战(第2版) STYLEREF 章上 MERGEFORMAT 目 录 PAGE V 目 录 第Ⅰ部分 通过示例讲解理论 第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餐饮行业的_x00B_餐馆质量 10 1.3.2 Spark允许Lumeris进行快速数据_x00B_传输 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 将数据帧中完成的工作保存到_x00B_数据库中 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 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 查看数据转换和数据操作的_x00B_结果 65 4.2.2 数据转换的过程,逐步进行 66 4.2.3 数据转换/操作流程的后台代码 68 4.2.4 在182毫秒内创建700多万个_x00B_数据点的奥秘 71 4.2.5 操作计时背后的奥秘 72 4.3 与RDBMS和传统应用程序进行_x00B_比较 76 4.3.1 使用青少年生育率数据集 76 4.3.2 分析传统应用程序和Spark_x00B_应用程序之间的区别 77 4.4 对于以数据为中心的应用程序_x00B_而言,Spark的表现出乎意料 78 4.5 Catalyst是应用程序的催化器 79 4.6 小结 81 第5章 构建一个用于部署的简单_x00B_应用程序 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构建应用_x00B_程序 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中提取数据_x00B_(比较复杂) 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是基于模式的序列化_x00B_格式 145 7.8.3 ORC是一种列式存储格式 145 7.8.4 Parquet也是一种列式存储_x00B_格式 146 7.8.5 比较Avro、ORC和Parquet 146 7.9 提取Avro、ORC和Parquet_x00B_文件 146 7.9.1 提取Avro 146 7.9.2 提取ORC 148 7.9.3 提取Parquet 150 7.9.4 用于提取Avro、ORC或Parquet_x00B_的参考表格 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餐馆_x00B_数据集 172 8.4.3 从 Elasticsearch中提取NYC_x00B_餐馆数据集的代码 173 8.5 小结 175 第9章 数据提取进阶:寻找数据源与_x00B_构建自定义数据源 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 使用实用程序构建数据帧的_x00B_神奇方法 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 区分离散化流数据和结构化_x00B_流数据 221 10.6 小结 221 第III部分 转换数据 第11章 使用SQL 225 11.1 使用Spark SQL 225 11.2 本地视图与全局视图之间的_x00B_区别 229 11.3 混合使用数据帧API和_x00B_Spark SQL 230 11.4 不要删除数据 233 11.5 进一步了解SQL 235 11.6 小结 235 第12章 转换数据 237 12.1 数据转换是什么 238 12.2 在记录层面进行数据转换的_x00B_过程和示例 238 12.2.1 数据发现,了解数据的_x00B_复杂性 240 12.2.2 数据映射,绘制过程 241 12.2.3 编写转换代码 244 12.2.4 审查数据转换,确保质量_x00B_流程 249 12.2.5 如何排序 251 12.2.6 结束Spark数据转换的首次_x00B_演示 251 12.3 连接数据集 251 12.3.1 仔细查看要连接的数据集 252 12.3.2 构建各县的高等教育机构_x00B_列表 253 12.3.3 执行连接操作 258 12.4 执行更多的数据转换 263 12.5 小结 263 第13章 转换整个文档 265 13.1 转换整个文档及其结构 265 13.1.1 展平JSON文档 266 13.1.2 构建嵌套文档,用于数据_x00B_传输和存储 270 13.2 静态函数背后的魔力 274 13.3 执行更多的数据转换 275 13.4 小结 275 第14章 使用自定义函数扩展数据_x00B_转换 277 14.1 扩展Apache Spark 278 14.2 注册和调用UDF 279 14.2.1 在Spark中注册UDF 281 14.2.2 将UDF与数据帧API结合_x00B_起来使用 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执行基本的数据_x00B_聚合 294 15.2 使用实时数据执行数据聚合 296 15.2.1 准备数据集 297 15.2.2 聚合数据,更好地了解_x00B_学校 301 15.3 使用UDAF构建自定义的_x00B_聚合操作 306 15.4 小结 311 第IV部分 百尺竿头,更进一步 第16章 缓存和检查点:增强Spark的_x00B_性能 315 16.1 使用缓存和检查点可提高_x00B_性能 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章 导出数据,构建完整数据_x00B_管道 337 17.1 导出数据的主要概念 337 17.1.1 使用NASA数据集构建_x00B_管道 338 17.1.2 将列转换为日期时间_x00B_(datetime) 341 17.1.3 将置信度百分比转换为_x00B_置信度等级 341 17.1.4 导出数据 342 17.1.5 导出数据:实际发生了_x00B_什么 344 17.2 Delta Lake:使用系统核心的_x00B_数据库 346 17.2.1 理解需要数据库的原因 346 17.2.2 在数据管道中使用_x00B_Delta Lake 347 17.2.3 消费来自Delta Lake的_x00B_数据 351 17.3 从Spark访问云存储服务 353 17.4 小结 354 第18章 探索部署约束:了解生态_x00B_系统 355 18.1 使用YARN、Mesos和_x00B_Kubernetes管理资源 356 18.1.1 使用内置的独立模式_x00B_管理资源 356 18.1.2 在Hadoop环境中,使用_x00B_YARN管理资源 357 18.1.3 Mesos是独立的资源_x00B_管理器 358 18.1.4 Kubernetes编排容器 360 18.1.5 选择合适的资源管理器 360 18.2 与Spark共享文件 361 18.2.1 访问文件中包含的数据 362 18.2.2 通过分布式文件系统共享_x00B_文件 362 18.2.3 访问共享驱动器或文件_x00B_服务器上的文件 363 18.2.4 使用文件共享服务分发_x00B_文件 364 18.2.5 访问Spark文件的其他_x00B_选项 365 18.2.6 用于与Spark共享文件的_x00B_混合解决方案 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 数据转换和数据操作的_x00B_参考资料 411 附录J Scala简介 421 附录K 在生产环境中安装Spark,以及一些提示 423 附录L 关于数据提取的参考资料 435 附录M 关于连接的参考资料 447 附录N 安装Elasticsearch和_x00B_示例数据 459 附录O 生成流数据 465 附录P 有关流数据的参考资料 469 附录Q 有关导出数据的参考资料 479 附录R 遇到困难,寻找帮助 487
展开全部

作者简介

Jean-Georges Perrin是-位经验丰富的数据和软件架构师。他是法国的**位IBM Champion,并连续12年获奖,成为终身IBM Chempion。Jean-Georges Perrin 对软件工程和数据的各个方面充满热情。新项目促使他转向分布式的数据工程,在此项目中,他在混合云环境中广泛使用Apache Spark、Java和其他工具。他很自豪地成为法国**个公认的IBM Champion,并连续12年获奖。作为获奖的数据和软件工程专家,现在,他在全球范围内都开展了业务,但重心在他所居住的美国。Jean-Georges是资深的会议演讲者和参与者,他以书面或在线媒体的形式发表文章,分享他在IT行业超过25年的经验。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航