使用 Apache Pig 处理数据5
使用 Apache Pig 从大数据集中获得所需的信息
Apache Pig 是一个高级过程语言,适合于使用 Hadoop 和 MapReduce 平台来查询大型半结构化数据集。通过允许对分布式数据集进行类似 SQL 的查询,Pig 可以简化 Hadoop 的使用。本文将探索 Pig 背后的语言,并在一个简单的 Hadoop 集群中发现其用途。
Hadoop 的普及和其生态系统的不断壮大并不令人感到意外。Hadoop 不断进步的一个特殊领域是 Hadoop 应用程序的编写。虽然编写 Map 和 Reduce 应用程序并不十分复杂,但这些编程确实需要一些软件开发经验。Apache Pig 改变了这种状况,它在 MapReduce 的基础上创建了更简单的过程语言抽象,为 Hadoop 应用程序提供了一种更加接近结构化查询语言 (SQL) 的接口。因此,您不需要编写一个单独的 MapReduce 应用程序,您可以用 Pig Latin 语言写一个脚本,在集群中自动并行处理与分发该脚本。
Pig Latin 示例
让我们从一个简单的 Pig 示例开始介绍,并剖析该示例。Hadoop 的一个有趣的用法是,在大型数据集中搜索满足某个给定搜索条件的记录(在 Linux® 中被称为 grep
)。清单 1 显示了在 Pig 中实现该过程的简单性。在所显示的三行代码中,只有一行是真正的搜索。第一行只是将测试数据集(消息日志)读取到代表元组集合的包中。用一个正则表达式来筛选该数据(元组中的惟一条目,表示为 $0
或 field 1),然后查找字符序列 WARN
。最后,在主机文件系统中将这个包存储在一个名为 warnings 的新文件中,这个包现在代表来自消息的包含 WARN
的所有元组。
清单 1. 一个简单的 Pig Latin 脚本
messages = LOAD 'messages'; warns = FILTER messages BY $0 MATCHES '.*WARN+.*'; STORE warns INTO 'warnings';
如您所见,这个简单的脚本实现了一个简单的流,但是,如果直接在传统的 MapReduce 模型中实现它,则需要增加大量的代码。这使得学习 Hadoop 并开始使用数据比原始开发容易得多。
现在让我们更深入地探讨 Pig 语言,然后查看该语言的一些功能的其他示例。
示例演示:
1、准备数据
messages文件 内容(含有两条WARN的)
This is WARNING message1
This is INFOING message2
This is WARNING message3
2、上传数据
hadoop dfs -put messages /input
3、运行pig进入grunt
grunt> messages = load '/input/messages';
grunt> warns = filter messages by $0 matches '.*WARN+.*';
grunt> dump warns
(This is WARNING message1)
(This is WARNING message3)
grunt> store warns into '/output/wranings'; 保存进入文件(位于hdfs上)
参考:http://www.ibm.com/developerworks/cn/linux/l-apachepigdataquery/index.html
转载于:https://www.cnblogs.com/jsunday/p/3789690.html
使用 Apache Pig 处理数据5相关推荐
- 使用 Apache Pig 处理数据7
Mapreduce 模式中的 Pig 对于 MapReduce 模式,必须首先确保 Hadoop 正在运行.要做到这一点,最简单的方法是在 Hadoop 文件系统树的根上执行文件列表操作,如 清单 3 ...
- Apache Pig教程_编程入门自学教程_菜鸟教程-免费教程分享
教程简介 Apache Pig 是apache平台下的一个免费开源项目,Pig为大型数据集的处理提供了更高层次的抽象,很多时候数据的处理需要多个MapReduce过程才能实现,使得数据处理过程与该模式 ...
- 大数据Hadoop之——数据分析引擎Apache Pig
文章目录 一.Apache Pig概述 二.Apache Pig架构 1)架构图 2)Apache Pig组件 1.Parser(解析器) 2.Optimizer(优化器) 3.Compiler(编译 ...
- ssis组件_使用SSIS Hadoop组件连接到Apache Hive和Apache Pig
ssis组件 In our previously published articles in this series, we talked about many SSIS Hadoop compone ...
- Apache Pig语法简述
Apache Pig是MapReduce的一个抽象.它是一个工具/平台,用于分析较大的数据集,并将它们表示为数据流. 它使用Pig Latin编程语言来写脚本,和 Hive 有一些相似之处.这里简单做 ...
- 【php毕业设计】基于php+mysql+apache的网络数据包分析工具设计与实现(毕业论文+程序源码)——网络数据包分析工具
基于php+mysql+apache的网络数据包分析工具设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于php+mysql+apache的网络数据包分析工具设计与实现,文章末尾附有本毕业设 ...
- Apache Superset可视化数据大屏
搭建Apache Superset可视化数据大屏 1.下载git并安装 Git (git-scm.com) 在CentOS6以上版本的yum源中有git的版本了,可以直接使用yum源进行安装. $ s ...
- Apache Kylin 大数据时代的OLAP利器
1. OLAP简介 OLAP的历史与基本概念 OLAP全称为在线联机分析应用,是一种对于多维数据分析查询的解决方案.典型的OLAP应用场景包括销售.市场.管理等商务报表,预算决算,经济报表等等. 最早 ...
- Apache DolphinScheduler 大数据工作流调度系统
[本文正在参与 "拥抱开源 - Apache DolphinScheduler 有奖征稿活动],活动地址 Apache DolphinScheduler 大数据工作流调度系统 一.背景 二. ...
最新文章
- Entity Freamwork 6连接PostgreSql数据库
- elementUI树状图竖向滚动条和横向滚动条问题
- Android application 中使用 provided aar 并没有那么简单
- Graphviz安装配置及入门(windows安装亲测)
- SAP Commerce web service 的扩展
- 工作组服务器操作系统,工作组服务器操作系统
- python的类里的属性是否可以为列表_是否有Python方法可以访问类的所有非私有和非内置属性?...
- [暑假小记]有点堕落——一个星期做完了一辈子的白日梦
- 【推荐实践】内容分发场景的多目标架构实践
- dorado基本事件样例
- 程序员“不会”修电脑的原因
- Ubuntu18.04 安装wine
- c#语法复习总结(1)-浅谈c#.net
- aggs 聚合 取结果
- UReport2导出报错
- Java代码利用aspose-words将word文档转换成pdf和图片格式(PNG,JPG,JPEG破解 无水印)
- python计算字节数_Python len()函数详解:获取字符串长度或字节数
- Android打包动态配置签名
- 电脑 显示 无可用电源选项 怎么办
- QtScrcpy使用指南