次の出力が必要です。CASE文を豚に使用するには?
NE 50
SE 80
私は地域に基づいて国を数えるためにpigクエリを使用しています。
c1 = group country by zone;
c2 = foreach c1 generate COUNT(country.zone), (
case country.zone
when 1 then 'NE'
else 'SE'
);
しかし、出力を達成できません。次のようなエラーが表示されます。
2016-03-30 13:57:16,569 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1039: (Name: Equal Type: null Uid: null)incompatible types in Equal Operator left hand side:bag :tuple(zone:int) right hand side:int
Details at logfile: /home/cloudera/pig_1459370643493.log
しかし、私は次のクエリを使用して実行できました。
c2 = foreach c1 generate group, COUNT(country.zone);
これは、次のような出力が得られます:
(1,50)
(2,80)
は、どのように私の代わりに1のNEとSEの代わりに、2を追加することができますか?私はCASEを使用すると助けになると思ったが、私はエラーが発生している。誰も助けることができますか?
次のように私は出力が必要な場合はどう: NE 50 SE 80 AE 50 VR 40 foreachステートメントを使用して、すべての4つのゾーンとカウントした国を比較します。 – bthapa
@BXT NE、SE AE、VRの対応する値は何ですか? 1,2,3,4? –
このような明確な説明をいただき、ありがとうございます。私はHiveのようにCASE文を使ってしまい、混乱しました。私はあなたの仕事に本当に感謝しています。 Big dataとhadoop用のブログもありますので、初心者の方も簡単に学習できますか? – bthapa