大象教程
首页
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 体系结构 使用Pig在Hadoop中分析数据的语言称为Pig Latin。它是一种高级数据处理语言,它提供了一组丰富的数据类型和运算符,以对数据执行各种操作。 为了使用Pig执行特定任务,程序员需要使用Pig Latin语言编写Pig脚本,并使用任何执行机制(Grunt Shell,UDF,嵌入式)执行它们。执行后,这些脚本将经历Pig框架应用的一系列转换,以产生所需的输出。 在内部,Apache Pig将这些脚本转换为一系列MapReduce作业,因此使程序员的工作变得容易。Apache Pig的体系结构如下所示。 ![](/media/editor/file_1664179151000_20220926155911844613.png) ##Apache Pig组件 如图所示,Apache Pig框架中包含各种组件。让我们看一下主要组成部分。 **解析器** 最初,Pig脚本由解析器处理。它检查脚本的语法,进行类型检查以及其他各种检查。解析器的输出将是DAG(有向无环图),它代表Pig Latin语句和逻辑运算符。 在DAG中,脚本的逻辑运算符表示为节点,数据流表示为边。 **优化器** 逻辑计划(DAG)传递给逻辑优化器,该逻辑优化器执行逻辑优化,例如投影和下推。 **编译器** 编译器将优化的逻辑计划编译为一系列MapReduce作业。 **执行引擎** 最后,MapReduce作业以排序顺序提交给Hadoop。最后,这些MapReduce作业在Hadoop上执行,从而产生所需的结果。 ##Pig Latin 数据模型 Pig Latin的数据模型是完全嵌套的,它允许使用复杂的非原子数据类型,例如map和tuple。下面给出的是Pig Latin数据模型的图形表示。 ![](/media/editor/file_1664179279000_20220926160119882851.png) ###原子 不管它们的数据如何,Pig Latin中的任何单个值都称为Atom(原子)。它存储为字符串,可以用作字符串和数字。`int`,`long`,`float`,`double`,`chararray`和`bytearray`是Pig的原子值。一条数据或一个简单的原子值称为字段。 如:`'raja'`或`'30'` ###元组(tuple) 由一组有序字段构成的记录称为元组,这些字段可以是任何类型。元组类似于RDBMS表中的行。 如:`(Raja,30)` ###包(bag) 包是无序的元组集。换句话说,一组元组(非唯一)被称为包。每个元组可以具有任意数量的字段(灵活模式)。袋子用`{}`表示。它与RDBMS中的表相似,但是与RDBMS中的表不同,不必每个元组都包含相同数量的字段或相同位置(列)中的字段具有相同的类型。 如:`{{Raja,30),(Mohammad,45)}` bag 可以是关系中的一个字段;在这种情况下,它被称为内袋。 如:`{{Raja,30,{9848022338,raja@gmail.com,}}` ###映射(map) 映射(或数据映射)是一组键值对。在关键的需求是类型chararray的,应该是唯一的。该值可以是任何类型。用`[]`表示,如:`[name#Raja,age#30]` ###关系 关系是一袋(bag)元组(tuple)。Pig Latin中的关系是无序的(不能保证元组以任何特定顺序进行处理)。
加我微信交流吧