《数据采集与预处理》教学教案—08用Pig进行数据预处理

  • 格式:doc
  • 大小:373.50 KB
  • 文档页数:4

数据采集与预处理教案
教学过程教学提示
一、知识准备:
Pig中主要的操作。

在本地文件系统中,创建一个包含数据的输入文件student_data.txt,
并执行“put”命令,将文件从本地文件系统上传到HDFS中。

(1)载入和存储
①载入:从文件系统或其他存储介质中载入数据到一个relation中。

②存储:保存relation到文件系统或其他存储介质中。

③备份:输出一个relation到控制台,并在控制台上输出关系的内容。

(2)过滤
①FILTER运算符。

FILTER运算符用于根据条件从关系中选择所需的元组。

②DISTINCT运算符。

DISTINCT运算符用于从关系中删除冗余(重复)元组。

③FOREACH运算符。

FOREACH运算符用于基于列数据生成指定的数据转换。

(3)分组与关联
①JOIN运算符。

JOIN运算符用于连接来自两个或多个关系的记录。

连接可以为以下类型:
a.Self-join(自连接)。

b.Inner-join(内部连接)。

c.Outer-join(外部连接)。

左外连接:
右外连接
全外连接
②GROUP运算符。

GROUP运算符用于在一个或多个关系中对数据进行分组,它收集具
有相同key的数据。

③COGROUP运算符。

COGROUP运算符的运作方式与GROUP运算符相同。

这两个运算符
之间的唯一区别是GROUP运算符通常用于涉及一个关系的语句,而
COGROUP运算符用于涉及两个或多个关系的语句。

(4)排序
①ORDER BY运算符。

ORDER BY运算符用于基于一个或多个字段排序显示关系的内容。

②LIMIT运算符。

LIMIT运算符用于从关系中获取有限数量的元组。

(5)组合和分隔
①UNION运算符。

Pig中的UNION运算符用于合并两个关系的内容。

要对两个关系执行
UNION操作,它们的列和域必须相同。

②SPLIT运算符。

SPLIT运算符用于将关系拆分为两个或多个关系。

二、任务实施:
1.环境配置及数据准备
在/usr/local/Hadoop/etc/Hadoop/目录中,编辑mapred-site.xml文件,代码如下。

<property>
<name>mapred.job.tracker</name>
<value>127.0.0.1:9001</value>
<property>
执行“start-all.sh”命令,启动Hadoop,再执行“mr-jobhistory-daemon.sh start historyserver”命令,启动HistoryServer服务
执行“jps”命令,查看Hadoop系统进程。

执行“hadoop dfs -mkdir /pig”命令,在HDFS中创建pig目录,并执行“-put”命令,将本地数据上传到HDFS的pig目录中,如图4-1所示。

图4-1 将本地数据上传到HDFS的pig目录中
2.在Pig中预处理数据
(1)执行“pig -x mapreduce”命令,进入Pig的MapReduce执行模式(Pig的另一种执行模式为Local模式),如图4-2所示。

图4-2 Pig的MapReduce执行模式
(2)将数据从HDFS中加载到Pig中,LOAD为数据加载语句,USING PigStorage(',')表示数据是以“,”为分隔符的,chararray为Pig的字符串或字符数组类型,关系创建完成后,可以执行“DUMP”命令验证关系。

(3)使用DISTINCT运算符从bus_info关系中删除冗余元组,将其另存在distinct_data关系中,并执行“DUMP”命令验证关系。

(4)使用FILTER运算符获取distinct_data关系中所有不为空的数据,将其另存在filter_data关系中,并执行“DUMP”命令验证关系。

3.将Pig预处理的文件导出到HDFS中
4.查看数据
在HDFS中查看处理后的数据,并执行“cat”命令查看输出文件,图4-3所示为预处理后的数据。

图4-3 预处理后的数据。