编辑推荐
本书向你介绍各种核心R功能和大量的第三方软件包,使得R用户能够从较新的大数据技术和框架(如 Hadoop、Spark、H2O,传统基于SQL的数据库如SQlite、MariaDB和PostgreSQL,还有更灵活的NoSQL数据库如MongoDB或者HBase等)中受益。通过学习本书,你将从数据导入和管理到分析和预测建模的大数据产品周期的所有阶段中亲身体验各种工具与R的整合。
内容简介
R是一个强大的、开源的、函数式编程语言,可以用于广泛的编程任务。一般来讲,R语言的应用主要在数据统计与分析、机器学习、高性能计算等方面。R语言已经在多个领域赢得了认可,同时也基于其开源、免费的特点不断地发展壮大。本书通过9章内容,循序渐进地揭示了大数据的概念,介绍了如何使用R进行数据处理,如何创建Hadoop虚拟机,如何建立和部署SQL数据库,同时还介绍了MongoDB、HBase、Spark、Hive相关的内容,并介绍了R的潜在应用场景。本书适合中级数据分析师、数据工程师、统计学家、研究人员和数据科学家阅读,需要读者具备数据分析、数据管理和大数据算法的基本知识。
作者简介
Simon Walkowiak是Mind Project公司的认知神经系统科学家和总经理,Mind Project公司是一家位于英国伦敦的大数据预测分析咨询公司。在此之前,Simon 是欧洲的社会经济数据库—— 英国科研数据服务(UKDS,位于埃塞克斯大学)的数据主管人。Simon在处理和管理大规模数据集方面拥有丰富的经验,例如普查、传感器、智能电表数据、电信数据和众所周知的政治和社会调查。Simon在公共机构和国际公司开设了大量的数据科学和 R 培训课程。他还在英国的几所主要的大学以及由分析与数据科学研究所(Institute of Analytics and Data Science,IADS)组织的大数据分析暑期班教授大数据方法课程。
目录
- 第 1章 大数据时代1
- 1.1 大数据——重新定义怪物 1
- 1.2 大数据工具箱——为大而生 4
- 1.2.1 Hadoop——屋中之象 4
- 1.2.2 数据库 6
- 1.2.3 Hadoop的Spark化 7
- 1.3 R语言——大数据的无冕之王 8
- 1.4 小结 13
- 第 2章 R编程语言与统计环境的介绍 14
- 2.1 学习R 14
- 2.2 R语言基础回顾 16
- 2.2.1 准备R和RStudio 16
- 2.2.2 R语言数据结构 19
- 2.2.3 导出R数据对象 29
- 2.3 应用数据科学与R 33
- 2.3.1 导入不同格式的数据 34
- 2.3.2 探索性数据分析 35
- 2.3.3 数据聚合和列联表 37
- 2.3.4 假设检验和统计推断 41
- 2.3.5 数据可视化包 52
- 2.4 小结 53
- 第3章 由内而外释放R的力量 54
- 3.1 R的传统局限性 54
- 3.1.1 内存外的数据 55
- 3.1.2 处理速度 55
- 3.2 超越内存限制 56
- 3.2.1 使用ff和ffbase软件包进行数据转换和聚合 56
- 3.2.2 使用ff和ffbase包的广义线性模型 65
- 3.2.3 使用bigmemory包扩展内存 73
- 3.3 R的并行 81
- 3.3.1 从bigmemory到更快的计算 82
- 3.3.2 未来的R并行处理 89
- 3.4 使用data.table包和其他工具提高R性能 91
- 3.4.1 使用data.table包快速数据导入和操作 91
- 3.4.2 编写更好的R代码 98
- 3.5 小结 99
- 第4章 R相关的Hadoop和MapReduce框架 100
- 4.1 Hadoop架构 100
- 4.1.1 Hadoop分布式文件系统 101
- 4.1.2 MapReduce框架 101
- 4.1.3 其他Hadoop原生工具 104
- 4.1.4 学习Hadoop 105
- 4.2 云上的单节点Hadoop 106
- 4.2.1 在Azure上部署Hortonworks Sandbox 106
- 4.2.2 Java语言的Hadoop单词记数示例 119
- 4.2.3 R语言的Hadoop单词记数示例 127
- 4.3 HDInsight—— Azure上的多节点Hadoop集群 145
- 4.3.1 创建第 一个HDInsight集群 145
- 4.3.2 智能电表数据分析示例——在HDInsight集群上使用R 164
- 4.4 小结 175
- 第5章 R与关系型数据库管理系统(RDBMS) 176
- 5.1 关系型数据库管理系统(RDBMS) 176
- 5.1.1 常用RDBMS简介 177
- 5.1.2 结构化查询语言(SQL) 178
- 5.2 用SQLite 连接R 179
- 5.2.1 准备并导入数据到本地SQLite数据库 179
- 5.2.2 通过RStudio连接SQLite数据库 182
- 5.3 在Amazon EC2实例中连接MariaDB和R 186
- 5.3.1 准备EC2实例和RStudio服务器 186
- 5.3.2 准备MariaDB和数据 188
- 5.3.3 连接MariaDB和RStudio 195
- 5.4 连接Amazon RDS上的PostgreSQL和R 209
- 5.4.1 启动一个Amazon RDS数据库实例 209
- 5.4.2 准备并上传数据到Amazon RDS上 214
- 5.4.3 从RStudio 远程查询Amazon RDS上的PostgreSQL 222
- 5.5 小结 232
- 第6章 R与非关系型数据库 233
- 6.1 NoSQL数据库简介 233
- 6.2 用R操作MongoDB 236
- 6.2.1 MongoDB简介 236
- 6.2.2 在Amazon EC2上安装MongoDB并与R连接 237
- 6.2.3 使用MongoDB和R处理大数据 240
- 6.3 Hbase与R 268
- 6.3.1 Azure HDInsight与HBase和RStudio Server 268
- 6.3.2 将数据导入HDFS和HBase 274
- 6.3.3 使用rhbase包读取和查阅Hbase 277
- 6.4 小结 282
- 第7章 比Hadoop更快——使用R编写Spark 283
- 7.1 为大数据分析服务的Spark 283
- 7.2 多节点HDInsight集群上使用R的Spark 284
- 7.2.1 部署使用支持Spark和R/RStudio的HDInsight 284
- 7.2.2 将数据读入HDFS和Hive 289
- 7.2.3 使用SparkR分析湾区共享单车数据 299
- 7.3 小结 315
- 第8章 R语言大数据机器学习 316
- 8.1 机器学习是什么 316
- 8.1.1 机器学习算法 316
- 8.1.2 监督和无监督机器学习方法 317
- 8.1.3 分类和聚类算法 318
- 8.1.4 R机器学习方法 318
- 8.1.5 大数据机器学习工具 319
- 8.2 在HDInsight集群中使用Spark和R的GLM示例 320
- 8.2.1 准备Spark群集并从HDFS读取数据 320
- 8.2.2 Spark中的R语言逻辑回归 325
- 8.3 R中基于Hadoop H2O的朴素贝叶斯 336
- 8.3.1 在R中运行Hadoop上的H2O实例 336
- 8.3.2 读取和探索H2O中的数据 340
- 8.3.3 R中基于H2O的朴素贝叶斯 343
- 8.4 R中基于Hadoop H2O的神经网络 355
- 8.4.1 神经网络的工作原理 355
- 8.4.2 在H2O上运行神经网络模型 356
- 8.5 小结 364
- 第9章 R语言的未来——大数据、快数据、智能数据 365
- 9.1 R大数据分析的现状 365
- 9.1.1 超过单机内存的数据 365
- 9.1.2 更快的R数据处理 367
- 9.1.3 Hadoop与R 367
- 9.1.4 Spark与R 368
- 9.1.5 R与数据库 369
- 9.1.6 机器学习与R 370
- 9.2 R的未来 370
- 9.2.1 大数据 370
- 9.2.2 快数据 371
- 9.2.3 智能数据 372
- 9.3 如何提升 372
- 9.4 小结 373