我需要将文本(月份名称)替换为另一个字符串(月份号)
是否有任何类似DECODE的函数可以将一个文本替换为另一个文本?
我需要像oracle decode这样的东西:
DECODE(inputStrint,'textToReplace1','Replacement1','textToReplace2,'Replacement2',etc);
关心
的Pawel
答案 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,...;