牛耳教育十六年专注长沙java培训,是湖南最专业的长沙java培训学校。也是中国十大品牌IT教育机构,16年来总共培养了28000名软件工程师。
电话:0731-82221222

hadoop——Pig java培训实战(一)学生成绩处理

牛耳教育长沙java培训学校教程实战(一)学生成绩处理

   Pig可以看做hadoop的客户端软件,可以连接到hadoop集群进行数据分析工作

Pig方便不熟悉java的用户,使用一种较为简便的类似于SQL的面向数据流的语言pig latin进行数据处理

Pig latin可以进行排序、过滤、求和、分组、关联等常用操作,还可以自定义函数,这是一种面向数据分析处理的轻量级脚本语言

Pig可以看做是pig latin到map-reduce的映射器


实验数据准备

将score.txt put到hdfs中。内容如下:

grunt> cat score.txt

lin,network,kobe,80

lin,database,kobe,90

lin,pde,yao,95

yang,network,kobe,100

yang,pde,yao,98

yang,pde,

hill,pde,yao,100


实验过程

任务一


计算一名学生被多少位老师教过。


首先将score.txt中的数据以逗号作为分隔符load到A中


grunt> A = LOAD 'score.txt' USING PigStorage (',') AS (student,course,teacher,score:int);

grunt> describe A

A: {student: bytearray,course: bytearray,teacher: bytearray,score: int}


由于我们只要统计学生被多少位老师教过,所以需要把学生和老师这两列筛选出来


grunt> B = FOREACH A GENERATE student,teacher;

grunt> describe B

B: {student: bytearray,teacher: bytearray}


dump B得到的结果:


(lin,kobe)(lin,kobe)(lin,yao)(yang,kobe)(yang,yao)(yang,)(hill,yao)


接下来group by sudent。然后对teacher去重计数。得到结果。


grunt> C = DISTINCT B;

grunt> D = FOREACH (GROUP C BY student) GENERATE group AS student, COUNT(C);

grunt> describe D

D: {student: bytearray,long}

 


dump D得到结果:


(lin,2)(hill,1)(yang,3)


实验结束


评论

© 牛耳教育|长沙java培训|长沙java培训学校|长沙软件培 | Powered by LOFTER