我目前正在学习hadoop框架和猪拉丁语。 现在我遇到了问题。
我有一个具有以下格式的数据集:
"long a, long b, char c, char d"
现在我想用猪读这个数据集。这对负载和PigStoarage功能来说没问题。
bla = load 'data/examples/test' as (a:long, b:long, c:chararray, d:chararray);
我的下一步是,我想在每一行上比较a和b。如果a大于b,那没关系。如果b大于a,我不想用b切换a,所以较高的值总是我的数据集的第一个值......
这可能吗?在Java中,我可以使用简单的“compareTo”...
来完成此操作 抱歉我的英语不好:-)答案 0 :(得分:2)
blb = FOREACH bla GENERATE ((a < b) ? b : a), ((a < b) ? a : b), c, d;
Pig中的此运算符称为bincond。第一个说,如果a
小于b
,则输出b
。第二个说,如果a
小于b
,则输出a
。请注意,当a
大于b
时,它会输出相反的结果。