我在元组中有一个名为avg_rating的列。我想基于avg_rating中的值创建一个新列NPS。以下是avg_rating数据的样子
avg_rating
3
4
8
9
10
因此,如果评级> = 8,那么Pr 如果评级等级在4&之间。 8 NPS将是P. 如果评级是< 4然后NPS将是D
这是我正在尝试的,
yy = FOREACH avg_rating GENERATE avg_rating,((int)wtr>=8 ?'P':(int)wtr>=4 && (int)wtr<8 ?'PR':'D');
我在turnery操作员中使用多个条件但是给我错误
语法错误,'('
处或附近的意外符号
有什么想法吗?
答案 0 :(得分:3)
这里有几个问题。
解析:
avg_rating = load '/tmp' using PigStorage('\t') as (wtr:INT);
yy = FOREACH avg_rating GENERATE
wtr,
((int)wtr>=8 ? 'P' : ((int)wtr>=4 and (int)wtr<8 ? 'PR' : 'D')) as v;
describe yy;