Ich brauche folgende Ausgabe.Wie CASE-Anweisung in Schwein?
NE 50
SE 80
Ich benutze Schwein Abfrage, um das Land basierend auf Zone zu zählen.
c1 = group country by zone;
c2 = foreach c1 generate COUNT(country.zone), (
case country.zone
when 1 then 'NE'
else 'SE'
);
Aber ich bin nicht in der Lage meine Ausgabe zu erreichen. Ich erhalte einen Fehler wie den folgenden:
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
Aber ich konnte mit der folgenden Abfrage tun.
c2 = foreach c1 generate group, COUNT(country.zone);
Dies wird folgende Ausgabe geben:
(1,50)
(2,80)
Wie kann ich NE statt 1 und SE anstelle von 2? Ich dachte, CASE würde helfen, aber ich bekomme Fehler. Kann jemand helfen?
Was passiert, wenn ich die Ausgabe müssen Sie wie folgt vor: NE 50 SE 80 AE 50 VR 40 Wie verwende ich foreach-Anweisung, um die Zone für alle Viere zu vergleichen und Länder basierend darauf zu zählen? – bthapa
@BXT was sind die entsprechenden Werte für NE, SE AE, VR? 1,2,3,4? –
Vielen Dank für Ihre so klare Erklärung. Ich habe CASE-Anweisung wie in Hive verwendet und war verwirrt. Ich schätze deine Arbeit sehr. Haben Sie auch einen Blog für Big Data und Hadoop, so dass es für mich einfach ist, als Anfänger zu lernen? – bthapa