Wie kann ich in piglatin einchecken, wenn eine Tasche ein Element enthält?Prüfen, ob ein Element in einer Tasche vorhanden ist?
Beispiel: Wie kann ich in einer Chararray-Tüte prüfen, ob ein Token vorhanden ist?
Wie kann ich in piglatin einchecken, wenn eine Tasche ein Element enthält?Prüfen, ob ein Element in einer Tasche vorhanden ist?
Beispiel: Wie kann ich in einer Chararray-Tüte prüfen, ob ein Token vorhanden ist?
In Apache Pig können Sie Anweisungen verwenden, die in FOREACH see Pig Basics verschachtelt sind. Hier ist ein Beispiel aus der Dokumentation: A
ist eine Tasche in B
.
X = FOREACH B {
S = FILTER A BY 'xyz';
GENERATE COUNT (S.$0);
}
Statt COUNT können Sie IsEmpty verwenden und Operator?:
X = FOREACH B {
S = FILTER A BY 'xyz';
GENERATE (IsEmpty(S.$0)) ? 'xyz NOT PRESENT' : 'xyz PRESENT') as present, B;
}
Oder nur die Taschen zu verlassen, die die Daten enthalten:
X = FOREACH B {
S = FILTER A BY 'xyz';
GENERATE B, S;
}
F = FILTER X BY not IsEmpty(S);
R = FOREACH F GENERATE B;
Das wird teuer vermeiden verbinden sich , da zusätzliche Joins zusätzliche Map Reduce-Jobs sind.