Hadoop Pig比较两个值并对它们进行排序

时间:2012-09-02 18:11:46

标签: hadoop apache-pig compareto

我目前正在学习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”...

来完成此操作 抱歉我的英语不好:-)

1 个答案:

答案 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时,它会输出相反的结果。