大数据分析工具Pig详细介绍

什么是Pig?

Pig是一种数据流语言和运行环境,常用于检索和分析数据量较大的数据集。Pig包括两部分:一是用于描述数据流的语言,称为Pig Latin;二是用于运行Pig Latin程序的执行环境。

Pig与Hive的区别?

Pig与Hive作为一种高级数据语言,均运行于HDFS之上,是hadoop上层的衍生架构,用于简化hadoop任务,并对MapReduce进行一个更高层次的封装。Pig与Hive的区别如下:

  1. Pig是一种面向过程的数据流语言;Hive是一种数据仓库语言,并提供了完整的sql查询功能。
  2. Pig更轻量级,执行效率更快,适用于实时分析;Hive适用于离线数据分析。
  3. Hive查询语言为Hql,支持分区;Pig查询语言为Pig Latin,不支持分区。
  4. Hive支持JDBC/ODBC;Pig不支持JDBC/ODBC。
  5. Pig适用于半结构化数据(如:日志文件);Hive适用于结构化数据。

Pig Latin语法介绍

下面,将通过与Mysql对比,介绍Pig Latin的常用语法。

1. 导入文件数据

  • Mysql
create table tmp_table(name varchar(32), age int, is_child boolean);
create table tmp_table2(age int, user varchar(50), is_child boolean);
load data local infile'/tmp/data_file1' into table tmp_table;
load data local infile'/tmp/data_file2' into table tmp_table2;
  • Pig
tmp_table  = load'/tmp/data_file1' using PigStorage('\t') as(name:chararray, age:int, is_child:int);
tmp_table2 = load'/tmp/data_file2' using PigStorage('\t') as(age:int, user:chararray, is_child:int);

2. 查询固定行数据

  • Mysql
select * from tmp_table limit 50;
  • Pig
tmp_table_limit = limit tmp_table 50;
dump tmp_table_limit;

3. 查询指定列数据

  • Mysql
select name from tmp_table;
  • Pig

tmp_table_name = foreach tmp_table generate name;
dump tmp_table_name;

4. 给列取别名

  • Mysql
select name as username, age as userage from tmp_table;
  • Pig

tmp_table_column_alias = foreach tmp_table generate name as username, age as userage;
dump tmp_table_column_alias;

5. 按某列排序

  • Mysql
select * from tmp_table order by age;
  • Pig

tmp_table_order = order tmp_table by age asc;
dump tmp_table_order;

6. 条件查询

  • Mysql
select * from tmp_table where age > 18;
  • Pig

tmp_table_where = filter tmp_table by age > 18;
dump tmp_table_where;

7. 内连接inner join

  • Mysql
select * from tmp_table A join tmp_table2 B on A.age = B.age;
  • Pig

tmp_table_inner_join = join tmp_table by age, tmp_table2 by age;
dump tmp_table_inner_join;

8. 左连接left join

  • Mysql
select * from tmp_table A left join tmp_table2 B on A.age = B.age;
  • Pig

tmp_table_left_join = join tmp_table by age left outer, tmp_table2 by age;
dump tmp_table_left_join;

9. 右链接right join

  • Mysql
select * from tmp_table A right join tmp_table2 B on A.age = B.age;
  • Pig

tmp_table_right_join = join tmp_table by age right outer,tmp_table2 by age;
dump tmp_table_right_join;

10. 全连接full join

  • Mysql
select * from tmp_table A join tmp_table2 B on A.age = B.age Union select * from tmp_table A left join tmp_table2 B on A.age = B.age;
  • Pig

tmp_table_full_join = join tmp_table by age full outer,tmp_table2 by age;
dump tmp_table_full_join;

11. 交叉查询多张表

  • Mysql
select * from tmp_table,tmp_table2;
  • Pig

tmp_table_cross = cross tmp_table,tmp_table2;
dump tmp_table_cross ;

12. 分组group by

  • Mysql
select * from tmp_table group by is_child;
  • Pig
tmp_table_group = group tmp_table by is_child;
dump tmp_table_group;

13. 分组并统计

  • Mysql
select is_male, count(*) from tmp_table group by is_child;
  • Pig
tmp_table_group_count = group tmp_table by is_child;
tmp_table_group_count = foreach tmp_table_group_count generate group,count($1);
dump tmp_table_group_count;

14. 查询去重

  • Mysql
select distinct is_child from tmp_table;
  • Pig
tmp_table_distinct = foreach tmp_table generate is_child;
tmp_table_distinct = distinct tmp_table_distinct;
dump tmp_table_distinct;






  • 9
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着大数据时代的到来,大数据分析已经成为了各行各业必不可少的一部分。而大数据分析所用到的工具也随着技术的发展而不断更新。下面我们来介绍一些常见的大数据分析工具。 1. Hadoop。Hadoop是由Apache基金会开发和维护的一套开源软件框架,它可以实现大规模数据的分布式存储和处理。Hadoop主要包括HDFS分布式文件系统和MapReduce计算框架,它们可以实现海量数据的存储和分析。 2. Spark。Spark是一款快速的分布式计算系统,它可以实现大规模数据的处理和分析。Spark支持多种编程语言和数据源,可以用于实时数据处理、机器学习和图像处理等领域。 3. Hive。Hive是一款基于Hadoop的数据仓库工具,它可以将结构化的数据映射到Hadoop的分布式文件系统中,并支持SQL语言进行查询和分析。Hive可以用于数据仓库的建立和数据分析。 4. PigPig是一款基于Hadoop的数据分析平台,它使用Pig Latin语言进行数据处理和分析,支持多种数据源和数据类型。Pig可以用于数据清洗、数据转换和数据分析等领域。 5. R。R是一款开源的统计分析软件,它可以用于数据可视化、数据分析和机器学习等领域。R支持多种数据格式和数据源,拥有丰富的数据处理和分析函数库。 6. Python。Python是一款流行的编程语言,它可以用于数据处理和分析。Python拥有丰富的数据处理和分析库,如Numpy、Pandas和Scikit-Learn等,可以用于数据清洗、数据转换和数据分析等领域。 总之,大数据分析所用到的工具随着技术的发展而不断更新,企业需要根据自身的需求选择合适的工具来实现数据的存储和分析。在未来,随着人工智能技术的不断发展,大数据分析工具也将不断创新和发展,带来更多的机会和挑战。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值