PIG中的null问题 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【meiwen.anslib.com - 电脑资料】

   

    在比较操作(==,!=,>,<,>=,<=),matches,算数操作(+,-,*,/ ,包含%,?,CASE)中,如果有一个操作数为空,那么结果为空,

PIG中的null问题

    COUNT_STAR ,不过滤null数据

    CAST 操作:将一个null数据从一个数据类型转换到另一个数据类型,结果为空

    AVG,MIN,MAX,SUM,COUNT :这几个操作将忽略空值

    CONCAT :任意一个字表达式为空,结果为空

    SIZE :任意计算的对象为null,结果也为null

    tuple(.) or map(#):如果 被引用的对象为空,那么结果为空 。

    FILTER 操作 :如果一个filter的表达式为空,filter将不会拒绝操作。(eg :b = filter a by X!=5 ,如果X为空,!X也为空,X!=5 将为空,那么filter将不会处理这一行数据。)

    三元操作符 ? :如果一个bool表达式的结果为null,结果将为空。

    以下操作会产生nulls : 1、除0 2、用户的UDFs 3、引用一个不存在的字段 4、引用一个map中不存在的字段 5、引用一个tuple中不存在的字段 6、load不存在的数据时产生null,空字符串不会被load,会被替换成null null可以作为一个常量使用 。 7、load时数据类型不匹配产生null

    GROUP /COGROUP/JOIN: 当使用group来处理一个关系时,一个关系中的null会被聚集在一起当做一个null处理 ,

电脑资料

PIG中的null问题》(http://meiwen.anslib.com)。 当cogroup来处理多个关系是,如果有key为空的情况时,多个关系之间的的空是不一样的,会被分别当做不同的null key来处理。

    JOIN :

数据 : a : 1 5 4

    3 6

    b : 1 7

    2 8

    10

    JOIN【inner】如:join中空和空是匹配不上的,会被过滤掉 。在join之前过滤出key为空的数据 ,有助于提高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)

最新文章