https://stats.moe.gov.tw/files/detail/103/103_student.txt
ubuntu@HDClient:~$ cat temp.txt | head
大專校院校別學生數
103 學年度 SY2014-2015
學校代碼 學校名稱 日間∕進修別 等級別 總計 男生計 女生計 一年級男生 一年級女生 二年級男生 二年級女生 三年級男生 三年級女生 四年級男生 四年級女生 五年級男生 五年級女生 六年級男生 六年級女生 七年級男生 七年級女生 延修生男生 延修生女生 縣市名稱 體系別
0001 國立政治大學 D 日 D 博士 973 583 390 117 76 79 62 94 58 98 57 75 53 61 43 59 41 - - 30 臺北市 1 一般
0001 國立政治大學 D 日 M 碩士 "3,816" "1,750" "2,066" 626 707 573 683 344 404 207 272 - - - - - - - - 30 臺北市 1 一般
:::
ubuntu@HDClient:~$ sed 's/\"//g' < temp.txt > student.txt 去除雙引號
ubuntu@HDClient:~$ cat student.txt | head
大專校院校別學生數
103 學年度 SY2014-2015
學校代碼 學校名稱 日間∕進修別 等級別 總計 男生計 女生計 一年級男生 一年級女生 二年級男生 二年級女生 三年級男生 三年級女生 四年級男生 四年級女生 五年級男生 五年級女生 六年級男生 六年級女生 七年級男生 七年級女生 延修生男生 延修生女生 縣市名稱 體系別
0001 國立政治大學 D 日 D 博士 973 583 390 117 76 79 62 94 58 98 57 75 53 61 43 59 41 - - 30 臺北市 1 一般
0001 國立政治大學 D 日 M 碩士 3,816 1,750 2,066 626 707 573 683 344 404 207 272 - - - - - - - - 30 臺北市 1 一般
0001 國立政治大學 D 日 B 學士 9,639 3,711 5,928 859 1,359 843 1,423 857 1,394 881 1,350 - - - - - - 271 402 30 臺北市 1 一般
0001 國立政治大學 N 職 M 碩士 1,625 875 750 314 233 294 257 154 142 67 77 46 41 - - - - - - 30 臺北市 1 一般
0002 國立清華大學 D 日 D 博士 1,786 1,403 383 248 58 219 54 213 55 220 56 189 50 152 62 141 46 21 2 18 新竹市 1 一般
:::
ubuntu@HDClient:~$ vi liststudent.pig
record = LOAD '$input' as (code:chararrey, name:chararray, type:chararray, class:chararray, total:int) ;
f1 = filter records by total is not null ;
g1 = group f1 by name ;
dump g1 ;
ubuntu@HDClient:~$ pig -param input=student.txt liststudent.pig
-param 指定Pig執行程序檔使用參數
input 指定檔案名稱=
(世新大學,{(1015,世新大學,P 進,B 學士,60),(1015,世新大學,D 日,D 博士,73),(1015,世新大學,D 日,M 碩士,774),(1015,世新大學,N 職,M 碩士,997),(1015,世新大學,N 修,C 二技,120)})
(中原大學,{(1004,中原大學,D 日,X 4+X,19),(1004,中原大學,D 日,D 博士,366)})
(中華大學,{(1011,中華大學,D 日,M 碩士,664),(1011,中華大學,D 日,D 博士,132),(1011,中華大學,P 進,B 學士,221),(1011,中華大學,N 修,C 二技,176),(1011,中華大學,N 職,M 碩士,283)})
(亞洲大學,{(1048,亞洲大學,D 日,D 博士,164),(1048,亞洲大學,N 職,M 碩士,526),(1048,亞洲大學,D 日,M 碩士,625)})
:::
ubuntu@HDClient:~$ cat countstudent.pig
records = LOAD '$input' as (code:chararray, name:chararray, type:chararray, class:chararray, total:int) ;
f1 = filter records by total is not null ;
g1 = group f1 by name ;
r1 = foreach g1 generate group, SUM(f1.total) ;
dump r1 ;
ubuntu@HDClient:~$ pig -param input=student.txt countstudent.pig
output
:::(國立高雄海洋科技大學,1291)
(國立高雄第一科技大學,1124)
(崇仁醫護管理專科學校,19)
(慈惠醫護管理專科學校,467)
(新生醫護管理專科學校,86)
(樹人醫護管理專科學校,451)
(耕莘健康管理專科學校,80)
(馬偕醫護管理專科學校,459)
(高美醫護管理專科學校,850)
(康寧醫護暨管理專科學校,416)
2017-12-14 06:59:09,963 [main] INFO org.apache.pig.Main - Pig script completed in 8 seconds and 433 milliseconds (8433 ms)
++Sorting...
sorted = ORDER r1 by $1 DESC ;
dump sorted ;
(國立臺北商業大學,3024)
(國立屏東大學,2270)
(國立臺北護理健康大學,2208)
(世新大學,2024)
(大漢技術學院,2022)
(國立高雄餐旅大學,2012)
(黎明技術學院,1964)
(國立臺灣科技大學,1933
:::
沒有留言:
張貼留言