| 作者 |
| 哈维尔·卢拉辛 凯文·郭 埃德加·鲁伊斯 穆罕默德·古勒 |
| 丛书名 |
| O’Reilly精品图书系列 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9782007301148 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------大规模数据分析和建模:基于Spark与R--------------------------- 这本书的目的是帮助所有人通过R使用Apache Spark。第1章~第5章,简单地介绍了如何大规模执行数据科学和机器学习项目。第6~9章介绍了使用Spark进行集群计算中令人激动的基本概念。第10章~第13章涵盖一些高级主题,包括分布式R、Streaming和社区贡献等。 ---------------------------Spark大数据分析:核心概念、技术及实践--------------------------- 本书是关于大数据和Spark的一个简明手册。它将助你学习如何用Spark来完成很多大数据分析任务,其中覆盖了高效利用Spark所需要知道的重要主题:如何使用SparkShell进行交互式数据分析、如何编写Spark应用、如何在Spark中对大规模数据进行交互分析、如何使用SparkStreaming处理高速数据流、如何使用Spark进行机器学习、如何使用Spark进行图处理、如何使用集群管理员部署Spark、如何监控Spark应用等。本书还对其他配合Spark一起使用的大数据技术进行了介绍,包括HDFS、Avro、Parquet、Kafka、Cassandra、HBase、Mesos等。本书也对机器学习和图的概念进行了介绍。 |
| 目录 |
---------------------------大规模数据分析和建模:基于Spark与R--------------------------- 序言 1 前言 3 第1章 引言 9 1.1 概述 10 1.2 Hadoop 10 1.3 Spark 12 1.4 R 16 1.5 sparklyr 19 1.6 小结 20 第2章 开始 21 2.1 概述 21 2.2 预备操作 22 2.2.1 安装sparklyr 23 2.2.2 安装Spark 23 2.3 连接 24 2.4 使用Spark 25 2.4.1 网络接口 25 2.4.2 分析 28 2.4.3 建模 28 2.4.4 数据 30 2.4.5 扩展 30 2.4.6 分布式R 31 2.4.7 流式数据 31 2.4.8 日志 32 2.5 断开连接 33 2.6 使用RStudio 33 2.7 资源 35 2.8 小结 36 第3章 分析 37 3.1 概述 37 3.2 数据导入 40 3.3 数据整理 41 3.3.1 内置函数 42 3.3.2 相关性 43 3.4 可视化 45 3.4.1 使用ggplot2 46 3.4.2 使用dbplot 47 3.5 建模 49 3.6 沟通 51 3.7 小结 54 第4章 建模 56 4.1 概述 56 4.2 探索性数据分析 58 4.3 特征工程 65 4.4 监督式学习 68 4.4.1 广义线性回归 72 4.4.2 其他模型 73 4.5 非监督式学习 73 4.5.1 数据准备 74 4.5.2 主题建模 75 4.6 小结 77 第5章 管道操作 78 5.1 概述 78 5.2 创建工作 80 5.3 用例 81 5.4 操作模式 83 5.5 交互性 84 5.6 部署 86 5.6.1 批打分 87 5.6.2 实时打分 88 5.7 小结 90 第6章 集群 92 6.1 概述 92 6.2 本地化 94 6.2.1 管理器 94 6.2.2 发行版 98 6.3 云端 100 6.3.1 亚马逊 101 6.3.2 Databricks 102 6.3.3 谷歌 103 6.3.4 IBM 105 6.3.5 微软 106 6.3.6 Qubole 107 6.4 Kubernetes 107 6.5 工具 108 6.5.1 RStudio 108 6.5.2 Jupyter 109 6.5.3 Livy 110 6.6 小结 111 第7章 连接 112 7.1 概述 112 7.1.1 边缘节点 114 7.1.2 Spark主 114 7.2 本地模式 115 7.3 单机模式 116 7.4 YARN 116 7.4.1 YARN客户端 117 7.4.2 YARN集群 117 7.5 Livy 118 7.6 Mesos 120 7.7 Kubernetes 121 7.8 云模式 121 7.9 批量模式 122 7.10 工具 123 7.11 多次连接 123 7.12 故障排除 124 7.12.1 记录日志 124 7.12.2 Spark Submit 124 7.12.3 Windows 126 7.13 小结 126 第8章 数据 127 8.1 概述 127 8.2 读取数据 129 8.2.1 路径 129 8.2.2 模式 130 8.2.3 内存 131 8.2.4 列 132 8.3 写入数据 133 8.4 复制数据 134 8.5 文件格式 135 8.5.1 CSV 136 8.5.2 JSON 137 8.5.3 Parquet 138 8.5.4 其他 139 8.6 文件系统 140 8.7 存储系统 140 8.7.1 Hive 141 8.7.2 Cassandra 142 8.7.3 JDBC 142 8.8 小结 143 第9章 调试 144 9.1 概述 144 9.1.1 计算图 146 9.1.2 时间线 148 9.2 配置 148 9.2.1 连接设置 150 9.2.2 提交设置 151 9.2.3 运行时设置 152 9.2.4 sparklyr设置 153 9.3 分区 156 9.3.1 隐式分区 156 9.3.2 显式分区 157 9.4 缓存 158 9.4.1 检查点 159 9.4.2 内存 159 9.5 重洗 160 9.6 序列化 161 9.7 配置文件 161 9.8 小结 162 第10章 扩展 163 10.1 概述 163 10.2 H2O 165 10.3 图模型 169 10.4 XGBoost 173 10.5 深度学习 176 10.6 基因组学 179 10.7 空间数据 181 10.8 故障排除 183 10.9 小结 183 第11章 分布式R 185 11.1 概述 185 11.2 用例 187 11.2.1 定制解析器 188 11.2.2 分区建模 189 11.2.3 网格搜索 191 11.2.4 Web API 192 11.2.5 模拟 193 11.3 分区 194 11.4 分组 195 11.5 列 196 11.6 context参数 197 11.7 函数 198 11.8 程序包 199 11.9 集群需求 200 11.9.1 安装R 200 11.9.2 Apache Arrow 201 11.10 故障排除 203 11.10.1 工作节点日志 204 11.10.2 解决超时 205 11.10.3 检查分区 206 11.10.4 调试工作节点 206 11.11 小结 207 第12章 数据流 208 12.1 概述 208 12.2 转换 211 12.2.1 分析 212 12.2.2 建模 213 12.2.3 管道 214 12.2.4 分布式R 215 12.3 Kafka 216 12.4 Shiny 218 12.5 小结 220 第13章 社区贡献 221 13.1 概述 221 13.2 Spark API 223 13.3 Spark扩展 224 13.4 使用Scala代码 226 13.5 小结 228 附录A 补充参考代码 229 ---------------------------Spark大数据分析:核心概念、技术及实践--------------------------- 译者序 前言 致谢 第1章 大数据技术一览1 1.1 Hadoop2 1.1.1 HDFS3 1.1.2 MapReduce5 1.1.3 Hive5 1.2 数据序列化6 1.2.1 Avro6 1.2.2 Thrift6 1.2.3 Protocol Buffers7 1.2.4 SequenceFile7 1.3 列存储7 1.3.1 RCFile8 1.3.2 ORC8 1.3.3 Parquet9 1.4 消息系统9 1.4.1 Kafka10 1.4.2 ZeroMQ11 1.5 NoSQL12 1.5.1 Cassandra13 1.5.2 HBase13 1.6 分布式SQL查询引擎14 1.6.1 Impala14 1.6.2 Presto14 1.6.3 Apache Drill15 1.7 总结15 第2章 Scala编程16 2.1 函数式编程16 2.1.1 函数17 2.1.2 不可变数据结构18 2.1.3 一切皆表达式19 2.2 Scala基础19 2.2.1 起步20 2.2.2 基础类型20 2.2.3 变量21 2.2.4 函数21 2.2.5 类24 2.2.6 单例24 2.2.7 样本类25 2.2.8 模式匹配25 2.2.9 操作符26 2.2.10 特质26 2.2.11 元组27 2.2.12 Option类型27 2.2.13 集合28 2.3 一个单独的Scala应用程序32 2.4 总结32 第3章 Spark Core33 3.1 概述33 3.1.1 主要特点33 3.1.2 理想的应用程序36 3.2 总体架构37 3.2.1 worker37 3.2.2 集群管理员38 3.2.3 驱动程序38 3.2.4 执行者38 3.2.5 任务38 3.3 应用运行38 3.3.1 术语38 3.3.2 应用运行过程39 3.4 数据源39 3.5 API40 3.5.1 SparkContext40 3.5.2 RDD41 3.5.3 创建RDD42 3.5.4 RDD操作43 3.5.5 保存RDD52 3.6 惰性操作53 3.7 缓存54 3.7.1 RDD的缓存方法55 3.7.2 RDD缓存是可容错的56 3.7.3 缓存内存管理56 3.8 Spark作业56 3.9 共享变量57 3.9.1 广播变量57 3.9.2 累加器58 3.10 总结59 第4章 使用Spark shell进行交互式数据分析60 4.1 起步60 4.1.1 下载60 4.1.2 解压61 4.1.3 运行61 4.2 REPL命令62 4.3 把Spark shell当成Scala shell使用62 4.4 数值分析63 4.5 日志分析64 4.6 总结68 第5章 编写Spark应用69 5.1 Spark中的Hello World69 5.2 编译并运行应用72 5.2.1 sbt72 5.2.2 编译代码73 5.2.3 运行应用73 5.3 监控应用75 5.4 调试应用75 5.5 总结76 第6章 Spark Streaming77 6.1 Spark Streaming简介78 6.1.1 Spark Streaming是一个Spark类库78 6.1.2 总体架构78 6.1.3 数据流来源78 6.1.4 接收器79 6.1.5 目的地79 6.2 API79 6.2.1 StreamingContext80 6.2.2 Spark Streaming应用基本结构82 6.2.3 DStream82 6.2.4 创建DStream83 6.2.5 处理数据流84 6.2.6 输出操作88 6.2.7 窗口操作91 6.3 一个完整的Spark Streaming应用93 6.4 总结98 第7章 Spark SQL99 7.1 Spark SQL简介99 7.1.1 和其他Spark库集成100 7.1.2 可用性100 7.1.3 数据源100 7.1.4 数据处理接口100 7.1.5 与Hive的互操作性101 7.2 性能101 7.2.1 磁盘I/O101 7.2.2 分区102 7.2.3 列存储102 7.2.4 内存中的列式缓存102 7.2.5 行跳过102 7.2.6 谓词下推102 7.2.7 查询优化103 7.3 应用104 7.3.1 ETL104 7.3.2 数据可视化104 7.3.3 分布式JDBC/ODBC SQL查询引擎105 7.3.4 数据仓库105 7.4 API106 7.4.1 关键抽象106 7.4.2 创建DataFrame109 7.4.3 在程序中使用SQL/HiveQL处理数据114 7.4.4 使用DataFrame API处理数据115 7.4.5 保存DataFrame131 7.5 内置函数133 7.5.1 聚合操作134 7.5.2 集合操作134 7.5.3 日期/时间134 7.5.4 数学135 7.5.5 字符串135 7.5.6 窗口135 7.6 UDF和UDAF135 7.7 一个交互式分析的例子135 7.8 使用Spark SQL JDBC服务器进行交互式分析142 7.9 总结145 第8章 使用Spark进行机器学习146 8.1 机器学习简介146 8.1.1 特征147 8.1.2 标签147 8.1.3 模型148 8.1.4 训练数据148 8.1.5 测试数据149 8.1.6 机器学习应用149 8.1.7 机器学习算法151 8.1.8 超参数160 8.1.9 模型评价160 8.1.10 机器学习的主要步骤162 8.2 Spark机器学习库162 8.3 MLlib概览163 8.3.1 与其他Spark库集成163 8.3.2 统计工具163 8.3.3 机器学习算法163 8.4 MLlib API164 8.4.1 数据类型164 8.4.2 算法和模型166 8.4.3 模型评价181 8.5 MLlib示例应用184 8.5.1 数据集184 8.5.2 目标184 8.5.3 代码184 8.6 Spark ML186 8.6.1 ML数据集187 8.6.2 Transformer187 8.6.3 Estimator187 8.6.4 Pipeline188 8.6.5 PipelineModel188 8.6.6 Evaluator188 8.6.7 网格搜索189 8.6.8 CrossValidator189 8.7 Spark ML示例应用189 8.7.1 数据集190 8.7.2 目标190 8.7.3 代码190 8.8 总结195 第9章 使用Spark进行图处理196 9.1 图简介196 9.1.1 无向图197 9.1.2 有向图197 9.1.3 有向多边图197 9.1.4 属性图197 9.2 GraphX简介198 9.3 GraphX API199 9.3.1 数据抽象199 9.3.2 创建图200 9.3.3 图属性202 9.3.4 图操作符204 9.4 总结217 第10章 集群管理员218 10.1 独立集群管理员218 10.1.1 架构219 10.1.2 建立一个独立集群219 10.1.3 在独立集群中运行Spark应用221 10.2 Apache Mesos223 10.2.1 架构223 10.2.2 建立一个Mesos集群224 10.2.3 在Mesos集群上运行Spark应用224 10.3 YARN226 10.3.1 架构226 10.3.2 在YARN集群上运行Spark应用228 10.4 总结228 第11章 监控229 11.1 监控独立集群229 11.1.1 监控Spark master229 11.1.2 监控Spark worker232 11.2 监控Spark应用233 11.2.1 监控一个应用所运行的作业234 11.2.2 监控一个作业的不同阶段235 11.2.3 监控一个阶段中的任务236 11.2.4 监控RDD存储238 11.2.5 监控环境243 11.2.6 监控执行者244 11.2.7 监控Spark流应用244 11.2.8 监控Spark SQL查询246 11.2.9 监控Spark SQL JDBC/ODBC服务器246 11.3 总结247 参考文献248 |