Pig Latin
加载数据
LOAD 运算符,从文件系统(HDFS / Local)将数据加载到Apache Pig中。
在左侧,需要提到我们想要存储数据的关系的名称;而在右侧,我们需要定义如何存储数据。
Relation_name = LOAD 'Input file path' USING function as schema;
function - 我们必须从Apache Pig提供的一组加载函数中选择一个函数( BinStorage,JsonLoader,PigStorage,TextLoader )。
Schema - 我们必须定义数据的模式,可以定义所需的模式如下 -
(column1 : data type, column2 : data type, column3 : data type);
例子:
student = LOAD 'hdfs://localhost:9000/pig_data/student_data.txt'
USING PigStorage(',')
as ( id:int, firstname:chararray, lastname:chararray, phone:chararray,
city:chararray );
存储数据
你可以使用 store 运算符将加载的数据存储在文件系统中
STORE Relation_name INTO ' required_directory_path ' [USING function];
例子:
STORE student INTO ' hdfs://localhost:9000/pig_Output/ ' USING PigStorage (',');
诊断运算符
Pig Latin提供四种不同类型的诊断运算符:
Dump运算符
Describe运算符
Explanation运算符
Illustration运算符
Dump 运算符用于运行Pig Latin语句,并在屏幕上显示结果,它通常用于调试目的。
Dump Relation_Name
describe 运算符用于查看关系的模式。
Describe Relation_name
explain 运算符用于显示关系的逻辑,物理和MapReduce执行计划。
explain Relation_name;
illustrate 运算符为你提供了一系列语句的逐步执行。
illustrate Relation_name;
Group运算符
GROUP 运算符用于在一个或多个关系中对数据进行分组,它收集具有相同key的数据。
Group_data = GROUP Relation_name BY age;
按多列分组
group_multiple = GROUP student_details by (age, city);
你可以按所有的列对关系进行分组,
group_all = GROUP student_details All;
Cogroup运算符
COGROUP 运算符的运作方式与 GROUP 运算符相同。两个运算符之间的唯一区别是 group 运算符通常用于一个关系,而 cogroup 运算符用于涉及两个或多个关系的语句。
cogroup_data = COGROUP student_details by age, employee_details by age;
Join运算符
JOIN 运算符用于组合来自两个或多个关系的记录。
连接可以是以下类型:
Self-join
Inner-join
Outer-join − left join, right join, and full join
Relation3_name = JOIN Relation1_name BY key, Relation2_name BY key ;
outer_left = JOIN customers BY id LEFT OUTER, orders BY customer_id;
outer_right = JOIN customers BY id RIGHT, orders BY customer_id;
outer_full = JOIN customers BY id FULL OUTER, orders BY customer_id;
CROSS 运算符计算两个或多个关系的向量积。(就是每个与另一个的所有组合)
Relation3_name = CROSS Relation1_name, Relation2_name;
Union运算符
UNION 运算符用于合并两个关系的内容。要对两个关系执行UNION操作,它们的列和域必须相同。
Relation_name3 = UNION Relation_name1, Relation_name2;
Split运算符
SPLIT 运算符用于将关系拆分为两个或多个关系。
SPLIT student_details into student_details1 if age<23, student_details2 if (22<age and age>25);
Filter运算符
FILTER 运算符用于根据条件从关系中选择所需的元组。
filter_data = FILTER student_details BY city == 'Chennai';
DISTINCT 运算符用于从关系中删除冗余(重复)元组。
distinct_data = DISTINCT student_details;
Foreach运算符
FOREACH 运算符用于基于列数据生成指定的数据转换。
Relation_name2 = FOREACH Relatin_name1 GENERATE (required data);
foreach_data = FOREACH student_details GENERATE id,age,city;
Order By运算符
Relation_name2 = ORDER Relatin_name1 BY (ASC|DESC);
order_by_data = ORDER student_details BY age DESC;
Limit运算符
Result = LIMIT Relation_name required number of tuples;
limit_data = LIMIT student_details 4;
Eval函数
各种内置函数
加载和存储函数
PigStorage() 加载和存储结构化文件。
STORE student INTO ' hdfs://localhost:9000/pig_Output/ ' USING PigStorage (',');
TextLoader() 是一个Load函数,用于以UTF-8格式加载非结构化数据。
BinStorage()函数
STORE student_details INTO 'hdfs://localhost:9000/pig_Output/mydata' USING BinStorage();
result = LOAD 'hdfs://localhost:9000/pig_Output/b/part-m-00000' USING BinStorage();
分享到:
相关推荐
### Pig Latin:一种用于数据处理的“非外语” #### 概述 《Pig Latin: A Not-So-Foreign Language for Data Processing》是一篇由Christopher Olston、Benjamin Reed、Utkarsh Srivastava、Ravi Kumar以及Andrew ...
本文主要涉及的是如何编写一个C语言程序,实现将输入的英文文本转换成Pig Latin形式。Pig Latin是一种娱乐性语言游戏,它根据特定规则改变英语单词的结构。以下是相关知识点: 1. **Pig Latin的转换规则**: - ...
本课程聚焦于“Hadoop 08 Pig安装与Pig Latin语言”,旨在深入理解Pig的工作原理及其在实际应用中的价值。 Pig拉丁语(Pig Latin)是Pig的编程语言,它允许用户以一种声明性的方式编写数据处理逻辑,而非传统的低级...
其中,“Pig Latin(共36页).pptx”部分专注于Pig语言的学习,Pig是一种高级数据流语言,用于简化在Hadoop上的大规模数据处理。 Pig Latin是Pig的核心,它允许用户以声明性方式编写数据处理任务,而非低级的...
猪拉丁语(Pig Latin)是一种英语中的文字游戏,它通过特定的规则将英语单词转换成一种变形形式。在这个项目中,我们有一个名为"Pig-Latin-Translator"的程序,它是一个用Python编写的工具,专门用于将输入的英文...
【Pig-Latin: Java Pig Latin 转换器】 Pig Latin是一种英语中的文字游戏,主要用于改变单词的拼写,通常用于娱乐和教学目的。它通过特定的规则将英语单词转换成一种“秘密”语言。Java Pig Latin转换器就是一个...
本文介绍了一个使用Python编程语言实现的Pig Latin小游戏实例代码。Pig Latin是一种流行的语言游戏,主要是将英文单词按照特定的规则转换成另一种形式,这种形式通常较难为非英语母语者理解,因此带有游戏性质。以下...
Pig Latin Lab The George Washington University Computer Science 1023 Professor Brenner (nbrenner@gwu.edu) Create a webpage to translate words from English to Pig Latin. Pig Latin is a secret language...
《Java实现Pig Latin:语言转换的艺术》 在编程世界中,Pig Latin是一种常用于教学和娱乐的语言游戏,它通过特定的规则将英语单词转换为另一种形式。在这个专题里,我们将探讨如何使用Java来实现Pig Latin的转换...
标题"apache-pig-on-storm:使用Apache Pig的Pig Latin生成并运行Apache Storm拓扑"暗示了我们将讨论如何利用Pig Latin编写的数据处理脚本在Storm上创建和执行分布式流处理任务。Pig Latin的抽象层次使得它成为构建...
GoHam - Pig Latin Translator 是一款基于Chrome浏览器的CRX插件,主要功能是将用户浏览的网页内容自动转化为Pig Latin这种特殊的语言形式。Pig Latin是一种英语游戏,用于对英语进行加密,它通过特定的规则对单词...
1. Pig Latin:Pig Latin是Pig的专用脚本语言,它的设计目标是简化MapReduce编程。通过抽象出一系列操作(如LOAD、FILTER、JOIN等),用户可以专注于数据处理逻辑,而无需关心底层的分布式计算细节。源码包中包含了...
**Pig Latin 简介** Pig Latin 是一种用于大数据分析处理的语言,由 Yahoo! 开发,旨在解决海量数据的高效分析需求。它结合了 SQL 的灵活性和 MapReduce 的并行处理能力,使得程序员可以编写更为简洁、易读的代码来...
猪拉丁变换流他做的事情PLTS 将任何字符串输入转换为 Pig Latin。为什么!? 我制作 PLTS 是因为我真的很想尝试实现流,而 Pig Latin 出现在我的脑海中......因为ywhay otnay ?用法要将任何输入转换为猪拉丁语,只...
《Pyg Latin翻译:探索Python实现的Pig Latin语法转换》 Pig Latin是一种英语儿童游戏,用于将英语单词转化为一种特殊形式的密码。它基于英语的音节和元音规则,通过移动单词首字母或字母组合来创建一个新的单词...
拉丁猪Pig Latin Translator 2015年9月9日肯德拉·阿什(Kendra Ash)和珍妮丝(Janice Laset-Parkerson)描述该应用程序允许用户输入句子并将其翻译为Pig Latin。设置打开命令终端git clone ...
Pig 构建在 Hadoop 平台上,通过提供一个名为 Pig Latin 的高级抽象语言,简化了在 Hadoop 上进行数据分析的过程。Pig Latin 允许数据工程师用简单的语句来描述复杂的分析任务,减少了直接编写 MapReduce 作业的复杂...
在IT行业中,Pig是Apache Hadoop项目的一部分,它提供了一种高级的、抽象的语言,称为Pig Latin,用于处理大规模数据集。Pig Java编程主要涉及到使用Java API与Pig Latin进行交互,以实现更灵活的数据处理需求。在本...