本书讲述R语言与Hadoop技术结合应用的权威书籍,由资深大数据分析师撰写,不仅系统且深入地阐释了R与Hadoop集成技术的工具、方法、原则和最佳实践,而且对各种常见问题进行深入分析,包含大量实践案例,可操作性强,能为用户高效利用R语言与Hadoop技术提供有效指导。全书共7章,分为四部分:第一部分(基础概念),包括第1~2章,主要讲解R语言以及Hadoop的安装过程、计算原理和基础概念;第二部分(初级应用),包括第3~4章,主要讲解RHIPE、RHadoop以及streaming三种实现方案;第三部分(高级实例),包括第5~6章,主要以RHadoop为技术背景,讲解多个实际应用案例;第四部分(数据库连接),包括第7章,主要讲解在RHadoop下如何同各类数据库进行连接。
目录
- 译者序
- 前言
- 审校者简介
- 致谢
- 第1章R和Hadoop入门 1
- 1.1安装R 2
- 1.2安装RStudio 3
- 1.3R语言的功能特征 3
- 1.3.1使用R程序包 3
- 1.3.2执行数据操作 3
- 1.3.3日渐增多的社区支持 4
- 1.3.4R语言数据建模 4
- 1.4Hadoop的安装 5
- 1.4.1不同的Hadoop模式 6
- 1.4.2Hadoop的安装步骤 6
- 1.5Hadoop的特点 12
- 1.5.1HDFS简介 13
- 1.5.2MapReduce简介 13
- 1.6HDFS和MapReduce架构 14
- 1.6.1HDFS架构 14
- 1.6.2MapReduce架构 15
- 1.6.3通过图示了解HDFS和MapReduce架构 15
- 1.7Hadoop的子项目 16
- 1.8小结 19
- 第2章编写Hadoop MapReduce程序 20
- 2.1MapReduce基础概念 20
- 2.2Hadoop MapReduce技术简介 22
- 2.2.1MapReduce中包含的实体 22
- 2.2.2MapReduce中的主要执行进程 23
- 2.2.3MapReduce的局限 25
- 2.2.4MapReduce 可以解决的问题 26
- 2.2.5使用Hadoop编程时用到不同的Java概念 26
- 2.3Hadoop MapReduce原理 27
- 2.3.1MapReduce对象 27
- 2.3.2MapReduce中实现Map阶段的执行单元数目 28
- 2.3.3MapReduce中实现Reduce阶段的执行单元数目 28
- 2.3.4MapReduce的数据流 28
- 2.3.5深入理解HadoopMapReduce 30
- 2.4编写Hadoop MapReduce示例程序 32
- 2.4.1MapReduce job运行的步骤 33
- 2.4.2MapReduce可解决的商业问题 38
- 2.5在R环境中编写Hadoop MapReduce程序的方式 39
- 2.5.1RHadoop 39
- 2.5.2RHIPE 40
- 2.5.3Hadoop streaming 40
- 2.6小结 40
- 第3章集成R和Hadoop 41
- 3.1RHIPE 42
- 3.1.1安装RHIPE 42
- 3.1.2RHIPE架构 44
- 3.1.3RHIPE实例 45
- 3.1.4RHIPE参考函数 48
- 3.2RHadoop 51
- 3.2.1RHadoop架构 51
- 3.2.2安装RHadoop 52
- 3.2.3RHadoop案例 53
- 3.2.4RHadoop参考函数 56
- 3.3小结 58
- 第4章Hadoop Streaming中使用R 59
- 4.1Hadoop Streaming基础概念 59
- 4.2使用R运行Hadoop streaming 62
- 4.2.1MapReduce应用程序基础 63
- 4.2.2如何编写MapReduce应用程序 65
- 4.2.3如何运行MapReduce应用程序 67
- 4.2.4如何浏览MapRecuce应用程序的输出 69
- 4.2.5Hadoop MapReduce脚本的基础R函数 70
- 4.2.6管理Hadoop MapReduce任务 71
- 4.3R语言扩展包HadoopStreaming介绍 72
- 4.3.1hsTableReader函数 73
- 4.3.2hsKeyValReader函数 75
- 4.3.3hasLineReader函数 75
- 4.3.4运行Hadoop streaming任务 78
- 4.3.5执行Hadoop Streaming任务 79
- 4.4小结 79
- 第5章利用R和Hadoop学习数据分析 80
- 5.1数据分析项目生命周期 80
- 5.1.1问题定义 81
- 5.1.2设计数据需求 81
- 5.1.3数据预处理 81
- 5.1.4数据分析 82
- 5.1.5数据可视化 82
- 5.2数据分析问题 83
- 5.2.1展示网页分类 83
- 5.2.2计算股市变动频率 92
- 5.2.3案例研究:预测推土机售价 98
- 5.3小结 107
- 第6章应用机器学习做大数据分析 108
- 6.1机器学习介绍 108
- 6.2有监督机器学习算法 109
- 6.2.1线性回归 109
- 6.2.2logistic回归 115
- 6.3无监督机器学习算法 118
- 6.4推荐算法 123
- 6.4.1在R中产生推荐商品的步骤 125
- 6.4.2使用R和Hadoop产生推荐商品 128
- 6.5小结 131
- 第7章从各种数据库中导入与导出数据 132
- 7.1文件型数据库 134
- 7.1.1不同类型的文件 134
- 7.1.2安装R包 134
- 7.1.3将数据导入R 134
- 7.1.4从R导出数据 135
- 7.2MySQL 135
- 7.2.1安装MySQL 135
- 7.2.2安装RMySQL 136
- 7.2.3列出数据表及其结构 136
- 7.2.4导入数据进R 136
- 7.2.5数据操纵 137
- 7.3Excel 137
- 7.3.1安装Excel 138
- 7.3.2导入数据进R 138
- 7.3.3R和Excel的数据操纵 138
- 7.3.4导出数据到Excel 138
- 7.4MongoDB 138
- 7.4.1安装MongoDB 139
- 7.4.2安装rmongodb 141
- 7.4.3导入数据进R 141
- 7.4.4数据操纵 142
- 7.5SQLite 143
- 7.5.1SQLite的特性 143
- 7.5.2安装SQLite 144
- 7.5.3安装RSQLite 144
- 7.5.4将数据导师入R 144
- 7.5.5数据操纵 145
- 7.6PostgreSQL 145
- 7.6.1PostgreSQL的特性 145
- 7.6.2安装PostgreSQL 145
- 7.6.3安装RPostgreSQL 146
- 7.6.4从R导出数据 146
- 7.7Hive 147
- 7.7.1Hive的特性 147
- 7.7.2安装Hive 147
- 7.7.3安装RHive 149
- 7.7.4RHive操作 149
- 7.8HBase 150
- 7.8.1HBase的特性 150
- 7.8.2安装HBase 151
- 7.8.3安装Thrift 152
- 7.8.4安装RHBase 153
- 7.8.5导入数据进R 153
- 7.8.6数据操纵 153
- 7.9小结 154
- 附录参考资源 155