内容简介
第一部分 入门:理论和工具
第1章 Hadoop基础
黑猩猩和大象创业
Map-Only作业:逐个处理记录
Pig Latin Map-Only作业
创建Docker Hadoop集群
运行作业
小结
第2章 MapReduce
黑猩猩和大象拯救圣诞节
玩具岛上的麻烦
黑猩猩把信件变成带标签的玩具表
小象将玩具表送到适当的工作台
示例:驯鹿游戏
UFO数据
根据报道延迟对UFO目击分组
Mapper
Reducer
数据可视化
驯鹿小结
Hadoop与传统数据库
MapReduce俳句
Map阶段简述
Group-Sort阶段简述
Reduce阶段简述
小结
第3章 棒球数据集速览
数据
缩略词和术语
规则和目标
评价指标
小结
第4章 Pig入门
Pig帮助Hadoop处理数据表,而不是记录
维基百科访问数统计
基本数据操作
控制操作
管道操作
结构化操作
LOAD定位并描述你的数据
简单类型
复杂类型1,元组:带类型字段的固长序列
复杂类型2,袋:元组的无限集合
定义变换后的记录模式
STORE将数据写入磁盘
辅助命令
DESCRIBE
DUMP
SAMPLE
ILLUSTRATE
EXPLAIN
Pig函数
Piggybank
Apache DataFu
小结
第二部分 战术:分析模式
第5章 Map-Only操作
模式用法
清除数据
选择满足条件的记录:FILTER等
选择满足多个条件的记录
选择或丢弃空值记录
选择匹配正则表达式的记录(MATCHES)
根据固定的值列表匹配记录
按字段名投影字段
使用FOREACH选择、重命名和重排序字段
抽取记录的随机样本
按key抽取一致性样本
仅加载部分part-Files实现粗略抽样
使用LIMIT选择固定数量的记录
其他数据消除模式
变换记录
使用FOREACH逐个变换记录
嵌套FOREACH允许使用中间表达式
根据模版格式化字符串
使用复杂类型组装字面值
操纵字段的类型
整型、浮点型和取整
从外部包调用用户自定义函数
将一个表分裂成多个表的操作
将数据条件定向到多个数据流(SPLIT)
将几个表联合成一个表的操作
将多个Pig关系表合并成一个表(堆砌行集)
小结
第6章 分组操作
按key将记录分组到袋
模式用法
统计key的出现次数
使用带分隔符的字符串表示值的集合
使用带分隔符的字符串表示复杂数据结构
使用JSON编码的字符串表示复杂数据结构
分组和聚合
聚合组的统计数据
完全汇总字段
汇总整个表的聚合统计值
汇总字符串字段
使用直方图计算数值型值的分布情况
模式用法
直方图的数据分箱
确定箱子的大小
解释直方图和分位数
将数据分箱到规模呈指数变化的块
为通用代码段创建Pig宏
比赛分布情况
极端情况和干扰因子
不要相信尾部分布
计算相对分布直方图
重新注入全局值
在组内计算直方图
导出可读结果
汇总技巧
统计组的条件子集——汇总技巧
同时汇总组的多个子集
测试组内某个值是否缺失
小结
参考文献
第7章 表连接
匹配表记录(内连接)
将一个表的记录与另一个表的记录直接匹配连接(直接内连接)
连接是怎么工作的
连接就是COGROUP+FLATTEN
连接就是在表名上进行二次排序的MapReduce作业
处理连接和分组中的空值和不匹配
枚举多对多关系
连接表和它自己(自连接)
包含不匹配记录的连接(外连接)
模式用法
连接不含外键关系的表
连接整型表填补列表中的空白
仅选择与另一个表不匹配的记录(反连接)
仅选择与另一个表匹配的记录(半连接)
反连接的另一种方式:使用COGROUP
小结
第8章 排序操作
准备职业生涯时期
对所有记录进行全排序
多字段排序
表达式排序(行不通)
大小写不敏感的字符串排序
排序的空值处理
将值放到排序顺序的顶部或底端
组内排序
模式用法
根据字段值的Top-K选择行
组内Top-K
按照排序顺序给记录编号
找出最大值对应的记录
对一组记录进行混排
小结
第9章 重复记录和唯一记录
处理重复
消除表中的重复记录
消除组内的重复记录
基于键消除重复
基于键选择唯一(或重复)记录
集合操作
全表上的集合操作
Distinct Union
Distinct Union(其他方法)
Set Intersection
Set Difference
Symmetric Difference:(A-B)+(B-A)
Set Equality
组内集合操作
构造一个集合序列
某个组内的集合操作
小结
索引