# 2020金象盃 大數據 教學範例
> [name=Junter.wjs,] 作者:JunterTW 翻譯:XiangOuO
## 語法
#### ==[將資料載入變數]==
變數 = LOAD '資料集' USING PigStorage as (欄位:型態);
> 範例
```sql
data = LOAD '/dataset/999004/999004.tsv' USING PigStorage ('\t') as (userid:chararray,gender:chararray,age:int,country:chararray,registered:chararray);
```
#### ==[查詢資料表Schema]==
describe 變數;
> 範例
```sql
describe data;
```
#### ==[顯示資料]==
dump 變數;
> 範例
```sql
dump data;
```
#### ==[查詢特定欄位] / [FOREACH] 取的每一筆資料==
變數 = FOREACH 變數 GENERATE 欄位;
> 範例
```sql
data1 = FOREACH data GENERATE userid; /*[FOREACH] 取的每一筆資料
```
#### ==[新增欄位]==
變數 = FOREACH 變數 GENERATE 欄位,999;
> 範例
```sql
data1 = FOREACH data GENERATE userid,999;
```
#### ==[欄位轉型]==
變數 = FOREACH 變數 GENERATE (型態)$0;
> 範例
```sql
data1 = FOREACH data GENERATE (chararray)$0,$1,$2;
```
#### ==[欄位重新命名]==
變數 = FOREACH 變數 GENERATE $0 as 欄位名稱;
> 範例
```sql
data1 = FOREACH data GENERATE userid , gender ,$2 as number;
```
#### ==[欄位重新命名與轉型]==
變數 = FOREACH 變數 GENERATE $0 as 欄位名稱:型態;
> 範例
```sql
data1 = FOREACH data GENERATE $0 as userid:chararray , $1 as gender:chararray;
```
#### ==條件過濾 / 語法==
變數 = FILTER 變數 BY (條件);
變數 = FILTER 變數 BY 欄位 MATCHES 正則表示法;
> 範例
```sql
data1 = FILTER data BY (gender == 'f');
data1 = FILTER data BY country MATCHES 'B[A-Za-z0-9]*' B開頭所有字
```
#### ==群組資料 / 語法==
變數 = GROUP 變數 BY 欄位;
變數 = GROUP 變數 ALL;
> 範例
```sql
data1 = GROUP data BY country;
data1 = GROUP data All;
```
---
:::warning
:loudspeaker: 程式碼如有錯誤!請自行修正或聯絡我們。
:email: 4a990025@stust.edu.tw / c109181108@nkust.edu.tw
:::
###### Tags: `範例` `教學`