,=,...">

PIG中的null問題 -電腦資料

電腦資料 時間:2019-01-01 我要投稿
【m.clearvueentertainment.com - 電腦資料】

   

    在比較操作(==,!=,>,<,>=,<=),matches,算數(shù)操作(+,-,*,/ ,包含%,?,CASE)中,如果有一個操作數(shù)為空,那么結(jié)果為空,

PIG中的null問題

    COUNT_STAR ,不過濾null數(shù)據(jù)

    CAST 操作:將一個null數(shù)據(jù)從一個數(shù)據(jù)類型轉(zhuǎn)換到另一個數(shù)據(jù)類型,結(jié)果為空

    AVG,MIN,MAX,SUM,COUNT :這幾個操作將忽略空值

    CONCAT :任意一個字表達(dá)式為空,結(jié)果為空

    SIZE :任意計(jì)算的對象為null,結(jié)果也為null

    tuple(.) or map(#):如果 被引用的對象為空,那么結(jié)果為空 。

    FILTER 操作 :如果一個filter的表達(dá)式為空,filter將不會拒絕操作。(eg :b = filter a by X!=5 ,如果X為空,!X也為空,X!=5 將為空,那么filter將不會處理這一行數(shù)據(jù)。)

    三元操作符 ? :如果一個bool表達(dá)式的結(jié)果為null,結(jié)果將為空。

    以下操作會產(chǎn)生nulls : 1、除0 2、用戶的UDFs 3、引用一個不存在的字段 4、引用一個map中不存在的字段 5、引用一個tuple中不存在的字段 6、load不存在的數(shù)據(jù)時產(chǎn)生null,空字符串不會被load,會被替換成null null可以作為一個常量使用 。 7、load時數(shù)據(jù)類型不匹配產(chǎn)生null

    GROUP /COGROUP/JOIN: 當(dāng)使用group來處理一個關(guān)系時,一個關(guān)系中的null會被聚集在一起當(dāng)做一個null處理 ,

電腦資料

PIG中的null問題》(http://m.clearvueentertainment.com)。 當(dāng)cogroup來處理多個關(guān)系是,如果有key為空的情況時,多個關(guān)系之間的的空是不一樣的,會被分別當(dāng)做不同的null key來處理。

    JOIN :

數(shù)據(jù) : a : 1 5 4

    3 6

    b : 1 7

    2 8

    10

    JOIN【inner】如:join中空和空是匹配不上的,會被過濾掉 。在join之前過濾出key為空的數(shù)據(jù) ,有助于提高join的速度。a = load './t1.txt' as (a1:int,a2:int); b = load './t2.txt' as (b1:int,b2:int); c= join a by a1,b by b1 ; dump c ; (1,5,1,7)

    JOIN【outer】 d = join a by a1 left,b by b1 ; dump d ; (1,5,1,7)

    (3,6,,)

    (,4,,)

    d = join a by a1 right,b by b1; dump d ; (1,5,1,7)

    (,,2,8)

    (,,,10)

    d = join a by a1 full,b by b1; dump d ; (1,5,1,7)

    (,,2,8)

    (3,6,,)

    (,4,,)

    (,,,10)

最新文章