hadoop pig比较两个值并对其排序

jqjz2hbq  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(286)

我正在学习hadoop框架和pig拉丁语。现在我有个问题。
我有一个数据集,格式如下:

"long a, long b, char c, char d"

现在我想用pig读取这些数据集。负载和Pig舍功能没问题。。

bla = load 'data/examples/test' as (a:long, b:long, c:chararray, d:chararray);

我的下一步是,我想比较每一行上的a和b。如果a大于b,那就好了。如果b大于a,我不想用b来切换a,这样较高的值总是我的数据集的第一个值。。。
这可能吗?在java中,我可以用一个简单的“compareto”。。。
对不起,我的英语不好:-)

z9smfwbn

z9smfwbn1#

blb = FOREACH bla GENERATE ((a < b) ? b : a), ((a < b) ? a : b), c, d;

pig中的这个操作符叫做bincond。第一个说,如果 a 小于 b ,然后输出 b . 第二个说,如果 a 小于 b ,然后输出 a . 注意,当 a 大于 b ,则输出相反的结果。

相关问题