Pig是作为客户端运行的程序,你需要将其连接到本地Hadoop或者集群上。当安装Pig之后,有三种执行pig程序的方法:pig脚本 (将程序写入.pig文件中),Grunt(运行Pig命令的交互式shell环境)和嵌入式方式。 records = Load ‘sample.txt’ as (year:chararray, temperature:int, quality:int); filter_records = FILTER records BY temperature != 9999 AND quality == 0; group_records = GROUP filter_records BY year; max_temp = FOREACH group_records GENERATE group, MAX(filter_records.temperature); DUMP max_temp; 生成上面程序的创建的数据集结构: grunt> ILLUSTRATE max_temp; Pig和数据库的比较: 1)Pig是数据流编程语言,而SQL是一种描述型编程语言。Pig是相对于输入的一步步操作,其中每一步都是对数据的一个简单的变换; 而SQL语句是一个约束的集合,这些约束结合在一起定义了输出。Pig更像RDBMS中的查询规划器。 2)RDBMS把数据存储在严格定义了模式的表内,但pig对数据的要求更宽松,可以在运行时定义模式,而且是可选的。 3)pig对复杂、嵌套数据结构的支持更强; 4)Pig不支持事务和索引,也不支持随机读和几十毫秒级别的查询,它是针对数据批量处理的。 5)Hive是介于Pig和RDBMS之间的系统。Hive以HDFS为存储,但是查询语言是基于SQL的,而且Hive要求所有数据必须存储在表中, 表必须有模式,而模式由Hive管理。但Hive允许为预先存在HDFS中的数据关联一个模式,因此数据加载步骤是可选的。 更多精彩内容请关注:http://bbs.superwu.cn 关注超人学院微信二维码: |
原文地址:http://blog.csdn.net/crxy2014/article/details/45971995