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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据采集与预处理教案

教学过程教学提示

一、知识准备:

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文件,代码如下。

mapred.job.tracker

127.0.0.1:9001

执行“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 预处理后的数据

相关文档
最新文档