猪有什么类似DECODE的功能吗?

时间:2014-04-25 12:42:15

标签: apache-pig


我需要将文本(月份名称)替换为另一个字符串(月份号)
是否有任何类似DECODE的函数可以将一个文本替换为另一个文本?

我需要像oracle decode这样的东西:

DECODE(inputStrint,'textToReplace1','Replacement1','textToReplace2,'Replacement2',etc);

关心
的Pawel

1 个答案:

答案 0 :(得分:1)

您想要将某个变量的字符串值(比如说Month)更改为另一个字符串值吗?

  • 由于您使用日期,您可以检查是否有任何可以帮助您的功能:

    [http://pig.apache.org/docs/r0.11.1/func.html#datetime-functions][1]

  • 或者您可以编写UDF功能

  • 或者你可以这样做:

    res = foreach Data {
        NewMonth = (Month matches 'January'? '1' : (Month matches 'February'? '2':(...) ) )
    Generate ...,NewMonth AS Month, ... ;
    }; 
    

    但它不是很漂亮,我真的建议你写一个UDF功能,然后调用它:

    res = foreach Data Generate ...,ChangeMonth(Month) AS Month,...;