logo资料库

中文 Spark: The Definitive Guide: Big Data Processing Made Simple ....pdf

第1页 / 共201页
第2页 / 共201页
第3页 / 共201页
第4页 / 共201页
第5页 / 共201页
第6页 / 共201页
第7页 / 共201页
第8页 / 共201页
资料共201页,剩余部分请下载后查看
Spark:权威指南
Bill Chambers and Matei Zaharia
Spark:权威指南
第一版的修订历史
前言
关于作者
本书适用于谁
本书中使用的约定
使用代码示例
O’Reilly Safari
如何联系我们
致谢
第一部分。大数据和Spark的温和概述
Apache Spark的哲学
背景:大数据问题
Spark的历史
Spark的现在和未来
运行Spark
在本地下载Spark
为Hadoop集群下载Spark
从源代码构建Spark
推出Spark的互动游戏机
启动Python控制台
启动Scala控制台
启动SQL控制台
在云中运行Spark
本书中使用的数据
第2章Spark的温和介绍
Spark的基本架构
Spark应用程序
Spark的语言API
Spark’s APIs
启动Spark
The SparkSession
DataFrames
分区
转换
懒惰的评价
操作
Spark UI
端到端示例
DataFrames and SQL
结论
第3章Spark的工具集之旅
运行生产应用程序
数据集:类型安全的结构化API
结构化流媒体
机器学习和高级分析
低级API
SparkR
Spark的生态系统和包装
结论
第二部分。结构化API-DataFrames,SQL和数据集
DataFrames和数据集
架构
结构化Spark类型概述
DataFrames与数据集
火花类型
结构化API执行概述
逻辑规划
物理规划
执行
结论
第5章基本结构化操作
架构
列和表达式
显式列引用
表达式
列作为表达式
访问DataFrame的列
记录和行
创建行
DataFrame Transformations
Creating DataFrames
选择并选择EXpr
转换为Spark类型(文字)
添加列
重命名列
保留的字符和关键字
区分大小写
删除列
更改列的类型(强制转换)
过滤行
获得独特的行
随机样本
随机拆分
连接和附加行(联盟)
排序行
限制
重新分配和合并
收集行到驱动程序
结论
第6章使用不同类型的数据
在哪里寻找API
转换为Spark类型
与布尔人合作
使用数字
使用字符串
常用表达
使用日期和时间戳
在数据中使用Null
合并
ifnull, nullIf, nvl, and nvl2
下降
更换
订购
使用复杂类型
结构
数组
分裂
数组长度
array_contains
爆炸
地图
使用JSON
用户定义的函数
结论
第7章聚合
聚合函数
计数
countDistinct
approx_count_distinct
第一和最后
最小和最大
sumDistinct
平均
方差和标准差
偏斜和峰度
协方差和相关性
聚合到复杂类型
分组
使用表达式分组
使用地图分组
窗口功能
分组集
汇总
立方体
分组元数据
用户定义的聚合函数
结论
第8章加入
加入表达式
加入类型
内部联接
外连接
左外连接
正确的外部联合
左半连接
左反连接
自然联合
十字架(笛卡尔)加入
使用连接时的挑战
加入复杂类型
处理重复的列名称
方法1:不同的连接表达式
方法2:在连接后删除列
方法3:在连接之前重命名列
Spark如何执行连接
沟通策略
大桌子到大桌子
大桌子到小桌子
小桌子到小桌子
结论
第9章数据源
数据源API的结构
阅读API结构
阅读数据的基础知识
读模式
编写API结构
编写数据的基础知识
保存模式
CSV文件
CSV选项
读取CSV文件
编写CSV文件
JSON文件
JSON选项
阅读JSON文件
编写JSON文件
实木复合地文件
阅读实木复合地文件
镶木地板选项
写木地板文件
ORC文件
阅读兽人文件
编写Orc文件
SQL数据库
从SQL数据库中读取
查询下推
并行读取数据库
基于滑动窗口的分区
写入SQL数据库
文本文件
阅读文本文件
编写文本文件
高级I / O概念
可拆分文件类型和压缩
并行读取数据
并行编写数据
分区
瓢泼大雨
写复杂类型
管理文件大小
结论
Chapter 10. Spark SQL
什么是SQL?
大数据和SQL:Apache Hive
大数据和SQL:Spark SQL
Spark与Hive的关系
The Hive metastore
如何运行Spark SQL查询
Spark SQL CLI
Spark的程序化SQL接口
SparkSQL Thrift JDBC/ODBC Server
目录
Spark管理表
创建表
创建外部表
插入表格
描述表元数据
刷新表元数据
丢桌子
删除非托管表
缓存表
查看
创建视图
删除视图
数据库
创建数据库
设置数据库
删除数据库
选择语句
case…when…then Statements
高级主题
复杂类型
结构
清单
功能
BillChambers & Matei Zaharia
Spark:权威指南 大数据处理变得简单 Bill Chambers and Matei Zaharia
Spark:权威指南 比尔钱伯斯和马泰扎哈里亚 版权所有©2018 Databricks。版权所有。印在 美利坚合众国。 Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. 可以购买O'Reilly书籍用于教育,商业或促销用途。在线版本也可用于大多数标题(http:/ /oreilly.com/safari)。有关更多信息,请联系我们的公司/机构销售部门:800-998-9938或 corporate@oreilly.com。 Editor: Nicole Tache 制作编辑:Justin Billing Copyeditor: Octal Publishing, Inc., Chris Edwards, and Amanda Kersey Proofreader: Jasmine Kwityn Indexer: Judith McConville Int erior Designer: David Futato 封面设计师:Karen Montgomery 插画家:Rebecca Demarest 2018年2月:第一版 第一版的修订历史 2018-02-08:首次发布 See http://oreilly.com/catalog/errata.csp?isbn=9781491912218 for release details. O'Reilly徽标是O'Reilly Media,Inc。的注册商标.Spark:The Definitive Guide,封面图片和 相关商业外观是O'Reilly Media,Inc。的商标.Apache,Spark和Apache Spark是Apache软件 基金会。 虽然出版商和作者使用诚意努力确保本作品中包含的信息和说明准确无误,但出版商和 作者对错误或遗漏不承担任何责任,包括但不限于因使用或依赖这项工作。使用本作品 中包含的信息和说明,风险自负。如果此作品包含或描述的任何代码示例或其他技术受 开源许可或其知识产权的约束
其他人,您有责任确保您的使用符合此类许可和/或权利。 978-1-491-91221-8 [M]
微信号:changqingt27 验证:好书 欢迎交流好书,或者粗译提高效率
前言 欢迎阅读第一版Spark:The Definitive Guide!我们很高兴今天为您带来最完整的Apac he Spark资源,特别关注Spark 2.0中引入的新一代Spark API。 Apache Spark目前是最受欢迎的大规模数据处理系统之一,其中包含多种编程语言的API 以及丰富的内置和第三方库。 虽然该项目已存在多年 - 首先是2009年在加州大学伯克利分校开始的研究项目,然后是 自2013年以来的Apache软件基金会 - 开源社区正在继续构建更强大的API和高级库,而不 是Spark,所以关于这个项目还有很多东西要写。我们决定写这本书有两个原因。首先, 我们希望提供有关Apache Spark的最全面的书籍,涵盖所有基本用例以及易于运行的示例。 其次,我们特别想探索在Apache Spark 2.0中最终确定的更高级别的“结构化”API - 即Data Frames,Datasets,Spark SQL和Structured Streaming-- Spark上的旧书并不总是包含在内。 在本序言中,我们将向您介绍一下我们的背景,并解释本书的用途以及我们如何组织这 些材料。我们还要感谢帮助编辑和审阅本书的众多人,没有他们就不可能。 关于作者 这本书的作者都参与了Apache Spark很长一段时间,所以我们很高兴能够为你带来这本书。 Bill Chambers于2014年开始在几个研究项目中使用Spark。目前,Bill是Databricks的产品 经理,他专注于使用户能够编写各种类型的Apache Spark应用程序。比尔还定期发布有关 Spark的博客,并就此主题在会议和聚会上发表演讲。Bill拥有加州大学伯克利分校信息管 理与系统硕士学位。 Matei Zaharia在加州大学伯克利分校担任博士生期间于2009年开始了Spark项目。Matei与 其他伯克利研究人员和外部合作者一起设计核心Spark API并发展Spark社区,并继续参与 结构化API和结构化流媒体等新举措。2013年,Matei和Berkeley Spark团队的其他成员共 同创立了Databricks,以进一步发展开源项目,并围绕它提供商业产品。今天,Matei继续 担任Databricks的首席技术专家,并在斯坦福大学担任计算机科学助理教授,在那里他研 究大型系统和AI。Matei于2013年获得加州大学伯克利分校的计算机科学博士学位。
本书适用于谁 我们主要为希望使用Apache Spark的数据科学家和数据工程师设计了这本书。这两个角色 的需求略有不同,但实际上,大多数应用程序开发都涵盖了两者,因此我们认为这两种 材料在两种情况下都很有用。具体来说,在我们看来,数据科学家的工作量更侧重于交 互式查询数据以回答问题和构建统计模型,而数据工程师的工作重点是编写可维护的, 可重复的生产应用程序 - 要么在实践中使用数据科学家的模型,要么只是准备数据以进 行进一步分析(例如,构建数据摄取管道)。 但是,我们经常看到Spark这些角色模糊不清。例如,数据科学家能够在没有太多麻烦的 情况下打包生产应用程序,数据工程师使用交互式分析来理解和检查他们的数据以构建 和维护管道。 虽然我们试图提供科学家和工程师开始所需的所有数据,但有些事情我们在本书中没有 空间可以关注。首先,本书不包括对您可以在Apache Spark中使用的一些分析技术的深入 介绍,例如机器学习。相反,我们将向您展示如何使用Spark中的库来调用这些技术,假 设您已经拥有机器学习的基本背景知识。存在许多完整的独立书籍以正式详细介绍这些 技术,因此如果您想了解这些领域,我们建议您从这些书籍开始。其次,本书更侧重于 应用程序开发而不是操作和管理(例如,如何管理具有数十个用户的Apache Spark集群)。 尽管如此,我们试图在监测,调试,本书的第五和第六版帮助工程师有效地运行应用程 序并处理日常维护。最后,本书不太重视Spark特有的RDD和DStream中较旧的低级API, 而是使用更新的更高级别的结构化API来引入大多数概念。因此,如果您需要维护旧的R DD或DStream应用程序,本书可能不是最合适的,但应该是编写新应用程序的一个很好 的介绍。 本书中使用的约定 本书使用以下印刷约定: 斜体 表示新术语,URL,电子邮件地址,文件名和文件扩展名。 恒定宽度 用于程序列表,以及段落内部,用于引用程序元素,如变量或函数名称,数据库,数 据类型,环境变量,语句和关键字。 恒定宽度粗体
显示应由用户按字面输入的命令或其他文本。 等宽斜体 显示应使用用户提供的值替换的文本或由上下文确定的值。 此元素表示提示或建议。 该元素表示一般性说明。 此元素表示警告或警告。 使用代码示例 小费 注意 警告 我们非常高兴能够设计这本书,以便所有代码内容都可以在真实数据上运行。我们使用 Databricks笔记本编写了整本书,并在GitHub上发布了数据和相关资料。这意味着您可以 在跟随时运行和编辑所有代码,或将其复制到您自己的应用程序中的工作代码中。 我们尽可能地使用真实数据来说明在构建大规模数据应用程序时遇到的挑战。最后,我 们还在本书的GitHub存储库中包含了几个较大的独立应用程序,例如在文本中显示内联 没有意义。 当我们根据Spark的进展更新时,GitHub存储库将仍然是一个活文档。一定要关注那里的 更新。 这本书是为了帮助你完成工作。通常,如果本书提供了示例代码,您可以在程序和文档中 使用它。除非您复制了大部分代码,否则您无需与我们联系以获得许可。例如,编写使用 本书中几个代码块的程序不需要许可。出售或分发O'Reilly书籍中的示例CD-ROM需要获 得许可。通过引用本书并引用示例代码来回答问题不需要许可。 将本书中的大量示例代码合并到产品文档中需要获得许可。
分享到:
收藏