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
使用生成的輸入子集顯示邏輯計划的試運行結果
  • UDF操作
REGISTER
Pig運行時環境中注冊一個JAR文件
DEFINE
UDF、流式腳本或命令規范新建別名
  • Pig Latin命令操作
kill
中止某個MapReduce任務
exec
在一個新的Grunt shell程序中以批處理模式運行一個腳本
run
在當前Grunt外殼程序中運行程序
quit
退出解釋器
set
設置Pig選項
  • Pig Latin表達式
類型
表達式
描述 
示例
字段
$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:用於在單個元組中分割字符串(其中包含一組字),並返回包含拆分操作輸出的包
過濾函數:
  • IsEmpty:檢查包或映射是否為空
加載/存儲函數:
  • PigStorage:將數據加載並存儲為結構化文本文件
  •  BinStorage:使用機器可讀格式將數據加載並存儲到Pig中
  • TextLoader:用於以UTF-8格式加載非結構化數據

 


 





注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: