大数据学习——数据处理工具Pig入门使用
发布时间:2020-12-14 03:16:22 所属栏目:大数据 来源:网络整理
导读:简介 Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转为一系列经过优化处理的MapReduce运算。 特点 专注于大量数据集分析 运行在集群的计算架构上,Yahoo Pig提供了多层抽象,简化并行
简介Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转为一系列经过优化处理的MapReduce运算。 特点
Pig与Hive区别
Pig运行模式
Pig的调用方式
安装实验环境:已安装好Hadoop环境,CentOS7 下载地址: wget http://mirror.bit.edu.cn/apache/pig/pig-0.16.0/pig-0.16.0.tar.gz
tar -zvxf pig-0.16.0.tar.gz
mv pig-0.16.0 pig
修改/etc/profile export PIG_HOME=/usr/local/pig
export PIG_CLASSPATH=${PIG_HOME}/conf/
export PATH=.:${PIG_HOME}/bin:$PATH
source /etc/profile
设置 Pig与Hadoop关联 fs.defaultFS=hdfs://hadoop-master:9000
mapreduce.jobtracker.address=hadoop-master:9001
使用示例进入与退出cd $PIG_HOME/bin
./pig --进入grunt shell
quit; --退出grunt
命令行ls / --列出目录
cd aa --进入文件夹
cat a.txt --查看文件
Pig latinPig Latin是一个相对简单的语言,它可以执行语句。
测试cat /whr/daily/stats/2017/03/21/cmd
a = LOAD '/whr/daily/stats/2017/03/21/cmd' USING PigStorage(',') AS (col1:chararray,col2:chararray,col3:chararray,col4:chararray,col5:int);
describe a;
b = GROUP a BY(col2);
describe b;
c = FOREACH b GENERATE COUNT(a.col2); 计算输入文件记录数
dump c;
语法解释 : 别名: Java嵌入PigLatin(未测试代码)import java.io.IOException;
import org.apache.pig.PigServer;
public class WordCount {
public static void main(String[] args) {
PigServer pigServer = new PigServer();
try {
pigServer.registerJar("/mylocation/tokenize.jar");
runMyQuery(pigServer,"myinput.txt";
}
catch (IOException e) {
e.printStackTrace();
}
}
public static void runMyQuery(PigServer pigServer,String inputFile) throws IOException {
pigServer.registerQuery("A = load '" + inputFile + "' using TextLoader();");
pigServer.registerQuery("B = foreach A generate flatten(tokenize($0));");
pigServer.registerQuery("C = group B by $1;");
pigServer.registerQuery("D = foreach C generate flatten(group),COUNT(B.$0);");
pigServer.store("D","myoutput");
}
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |