2

私は現在、Hadoopフレームワークとピッグラテン語を学んでいます。今、私は問題を抱えています。

次の形式のデータセットがあります。

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

ここで、このデータセットをpigで読みたいと思います。それは負荷とPigStoarage機能に問題はありません。

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

次のステップは、各行でaとbを比較したいということです。aがbより大きい場合は、問題ありません。bがaより大きい場合、aをbに切り替えたくないので、高い値が常にデータセットの最初の値になります...

これは可能ですか?Javaでは、単純な「compareTo」でこれを行うことができます...

私の悪い英語でごめんなさい:-)

4

1 に答える 1

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

Pig のこの演算子はbincondと呼ばれます。最初のものは、aが 未満の場合b、 出力と述べていますb。2 つ目は、aが 未満の場合b、 を出力しますaaが より大きい場合はb、反対の出力になることに注意してください。

于 2012-09-02T20:48:23.730 に答える