大象教程
首页
Spark
Hadoop
HDFS
MapReduce
Hive
Pig 教程
Pig 教程
Pig 体系结构
Pig 安装
Pig 执行
Pig Grunt Shell
Pig Latin 基础
Pig 读取数据
Pig 存储数据
Pig Dump 运算符
Pig Describe 运算符
Pig Explain 运算符
Pig illustrate 运算符
Pig GROUP 运算符
Pig Cogroup 运算符
Pig JOIN 运算符
Pig Cross 运算符
Pig Union 运算符
Pig SPLIT 运算符
Pig FILTER 运算符
Pig DISTINCT 运算符
Pig FOREACH 运算符
Pig ORDER BY 运算符
Pig LIMIT 运算符
Pig eval(求值) 函数
Pig Load & Store 函数
Pig Bag & Tuple 函数
Pig 字符串(String) 函数
Pig 日期时间函数
Pig 数学函数
#Pig 教程 Apache Pig是MapReduce的抽象。它是一种工具/平台,用于分析将较大的数据集表示为数据流的数据。Pig通常与Hadoop一起使用;我们可以使用Pig来执行Hadoop中的所有数据操作操作。 为了编写数据分析程序,Pig提供了一种称为Pig Latin的高级语言。该语言提供了各种运算符,程序员可以使用它们来开发自己的函数来读取,写入和处理数据。要使用Apache Pig分析数据,程序员需要使用Pig Latin语言编写脚本。所有这些脚本都在内部转换为Map和Reduce任务。Apache Pig具有称为Pig Engine的组件,该组件接受Pig Latin脚本作为输入并将这些脚本转换为MapReduce作业。 本教程适用于所有希望在不使用Java键入复杂代码的情况下执行MapReduce操作的Hadoop专业人员。 要充分利用本教程,您应该对Hadoop和HDFS命令的基础知识有很好的了解。如果您擅长SQL,那么肯定会有所帮助。 ##为什么我们需要Apache Pig? 不太擅长Java的程序员通常在使用Hadoop时会遇到困难,尤其是在执行任何MapReduce任务时。Apache Pig是所有此类程序员的福音。 使用Pig Latin,程序员可以轻松执行MapReduce任务,而无需在Java中键入复杂的代码。 Apache Pig使用多查询方法,从而减少了代码长度。例如,只需在Apache Pig中键入少于10个LoC即可轻松完成需要在Java中键入200行代码(LoC)的操作。最终,Apache Pig将开发时间减少了近16倍。 Pig Latin是一种类似SQL的语言,当您熟悉SQL时很容易学习Apache Pig。 Apache Pig提供了许多内置的运算符来支持数据操作,例如联接,过滤器,排序等。此外,它还提供了MapReduce中缺少的嵌套数据类型,例如元组,包和映射(maps)。 ##Pig 的功能 Apache Pig具有以下功能: - 丰富的运算符集:它提供许多运算符来执行诸如 join, sort, filer等操作。 - 易于编程:Pig Latin与SQL相似,如果您擅长SQL,则很容易编写Pig脚本。 - 自动优化:Apache Pig中的任务会自动优化其执行,因此程序员只需要专注于语言的语义。 -可扩展性:使用现有的运算符,用户可以开发自己的函数来读取,处理和写入数据。 - UDF的:Pig提供了使用其他编程语言(例如Java)创建用户定义函数并将其调用或嵌入Pig脚本的功能。 - 处理各种数据: Apache Pig分析所有结构化和非结构化数据。它将结果存储在HDFS中。 ##Apache Pig 与 MapReduce 下面列出的是Apache Pig和MapReduce之间的主要区别。 | Pig | MapReduce | | ------------ | ------------ | |Apache Pig是一种数据流语言。| MapReduce是一种数据处理范例。 | |这是一种高级语言。 | MapReduce是低级且严格的。| |在Apache Pig中执行Join操作非常简单。 |在MapReduce中,很难在数据集之间执行Join操作。| |任何具有SQL基本知识的新手程序员都可以轻松地与Apache Pig一起工作|使用MapReduce必须与Java接触。| |Apache Pig使用多查询方法,从而在很大程度上减少了代码长度。|MapReduce将需要多近20倍的行数来执行同一任务。| |无需编译。在执行时,每个Apache Pig运算符都会在内部转换为MapReduce作业。|MapReduce作业的编译过程很长。| ##Apache Pig 与 SQL 下面列出的是Apache Pig和SQL之间的主要区别。 | Pig | SQL | | ------------ | ------------ | |Pig Latin是一种程序语言。| SQL是一种声明性语言。 | |在Apache Pig中,模式是可选的。我们可以存储数据而无需设计架构(值存储为$01,$02等)。 | 模式在SQL中是必需的。| |Apache Pig中的数据模型是嵌套关系型。|SQL中使用的数据模型是扁平关系。| |Apache Pig为查询优化提供了有限的机会。|SQL中查询优化的机会更多。| 除了上述差异外,Apache Pig Latin 还有以下特点: - 允许在管道中拆分。 - 允许开发人员将数据存储在管道中的任何位置。 - 宣布执行计划。 - 提供操作员执行ETL(提取,转换和加载)功能。 ##Apache Pig 与 Hive Apache Pig和Hive均用于创建MapReduce作业。在某些情况下,Hive以与Apache Pig相似的方式在HDFS上运行。在下表中,我们列出了一些使Apache Pig与Hive脱颖而出的重要方面。 |Pig|Hive| |----|---| |Apache Pig使用一种称为Pig Latin的语言。它最初是由Yahoo创建的。|Hive使用一种称为HiveQL的语言。它最初是在Facebook上创建的。 |Pig Latin是一种数据流语言。|HiveQL是查询处理语言。| |Pig Latin是一种过程语言,适合流水线范例。|HiveQL是一种声明性语言。| |Apache Pig可以处理结构化,非结构化和半结构化数据。|Hive主要用于结构化数据。| ##Apache Pig的应用 数据科学家通常使用Apache Pig来执行涉及即时处理和快速原型制作的任务。使用Apache Pig: - 处理大量数据源,例如Web日志。 - 对搜索平台执行数据处理。 - 处理时间敏感的数据加载。 ##Apache Pig 历史 在2006年,Apache Pig是发展成为雅虎的一个研究项目,特别是建立和每个数据集执行MapReduce作业。在2007年,Apache Pig通过Apache孵化器开源。在2008年,Apache Pig的第一个版本出来。在2010,Apache Pig成为Apache顶级项目。
加我微信交流吧