生活随笔
收集整理的這篇文章主要介紹了
Pig常用语法大全
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Pig查詢語言是基于Pig Latin,程序由一系列語句構成,操作和命令不區分大小寫,別名和函數名區分大小寫。下面,將介紹Pig Latin的常用語法。
1. 常用操作
LOAD? ? ? ? ? ? ?
| 導入外部文件中的數據,存入關系
|
STORE
| 將一個關系存儲到文件系統中
|
DUMP
| 將關系打印到控制臺 |
FILTER
| 按條件篩選關系中的行
|
DISTINCT?
| 去除關系中的重復行 |
FOREACH...GENERATE?
| 對于集合的每個元素,生成或刪除字段
|
STREAM
| 使用外部程序對關系進行變換(例如,將Python程序嵌入到Pig中使用)
|
SAMPLE
| 從關系中隨機取樣 |
JOIN
| 連接兩個或多個關系
|
COGROUP
| 在兩個或多個關系中分組
|
GROUP
| 在一個關系中對數據分組
|
CROSS?
| 獲取兩個或更多關系的乘積(叉乘) |
ORDER
| 根據一個或多個字段對某個關系進行排序
|
LIMIT
| 限制關系的元組個數 |
UNION
| 合并兩個或多個關系
|
SPLIT
| 把某個關系切分成兩個或多個關系 |
DESCRIBE
| 打印關系的模式
|
EXPLAIN
| 打印邏輯和物理計劃
|
ILLUSTRATE
| 使用生成的輸入子集顯示邏輯計劃的試運行結果 |
REGISTER
| 在Pig運行時環境中注冊一個JAR文件
|
DEFINE
| 為UDF、流式腳本或命令規范新建別名 |
kill
| 中止某個MapReduce任務
|
exec
| 在一個新的Grunt shell程序中以批處理模式運行一個腳本
|
run
| 在當前Grunt外殼程序中運行程序
|
quit
| 退出解釋器
|
set
| 設置Pig選項 |
類型
| 表達式
| 描述?
| 示例
|
字段
| $n?
| 第n個字段
| $0
|
字段
| d | 字段名d
| year
|
投影
| c.$n, c.f
| c.f?在關系、包或元組中的字段
| user.$0, user.year
|
Map查找
| m#k
| 在映射m中鍵k對應的值
| items'Coat'
|
類型轉換
| (t)f?
| 將字段t轉換成f類型
| (int)age
|
函數型平面化
| fn(f1, f2,?…)
| 在字段上應用函數
| fn isGood(quality)
|
函數型平面化
| FLATTEN(f)
| 從包和元組中去除嵌套?
| ?flatten(group) |
2. Pig Latin數據類型
數據類型:
- int (32位有符號整數)
- long(64位有符號整數)
- float(32位浮點數)
- double(64位浮點數)
- chararray(UTF16格式的字符數組)
- bytearray(字節數組)
- tuple(元組) :?tuple: (1, 'world')? ? ? ? ? ? ? ?//任何類型的字段序列
- bag(包)? :??bag: {(1, 'world'), (2)}? ? ? ?//元組的無序多重集合(允許重復元組)
- ?map(鍵值對) :?map: ['a'?'world']? ? ? ? ? //一組鍵值對,鍵必須是字符數組
3. 常用函數
計算函數:? ?- AVG?:?所有值平均值
- COUNT : 獲取包中的元素數量
- CONCAT:將兩列合并為一列
- COUNT_STAR:獲取包中的元素數量。在計數元素時,COUNT_STAR()?函數包含NULL值
- DIFF:比較元組中的兩個包
- MAX:計算單列包中的列(數值或字符)的最大值
- MIN:計算單列包中的列(數值或字符)的最小值
- SIZE:基于任何Pig數據類型計算元素的數量
- SUM:獲取單列包中列的總數值
- TOKENIZE:用于在單個元組中分割字符串(其中包含一組字),并返回包含拆分操作輸出的包
過濾函數:
加載/存儲函數:
- PigStorage:將數據加載并存儲為結構化文本文件
- ?BinStorage:使用機器可讀格式將數據加載并存儲到Pig中
- TextLoader:用于以UTF-8格式加載非結構化數據
?
?
總結
以上是生活随笔為你收集整理的Pig常用语法大全的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。