2017-10-24 9 views
0

Ich habe zwei Datenobjekte in Schwein.Fehler nach dem Verbinden von Objekten in Apache Pig

data_1:

col_a: chararray, 
col_b: int, 
col_c: int, 
col_d: chararray 

data_2:

col_a: chararray, 
col_b: chararray, 
col_c: int, 
col_d: int, 
col_e: int 

ich die beiden von ihnen anschließen möchten, habe ich versucht:

all_data = JOIN data_1 BY (col_a) LEFT, data_2 by (col_b); 
all_data = JOIN data_1 BY (col_a), data_2 by (col_b); 

Als ich versuchte, das Objekt zu entleeren (nach begrenzen Sie es auf 10 Datensätze) Beide Optionen gaben den gleichen Fehler zurück:

Caused by: org.apache.pig.backend.executionengine.ExecException: ERROR 0: Exception while executing (Name: all_data_limit: Limit - scope-6383 Operator Key: scope-6383): org.apache.pig.backend.executionengine.ExecException: ERROR 0: Exception while executing (Name: all_data: New For Each(true,true)[tuple] - scope-6382 Operator Key: scope-6382): org.apache.pig.backend.executionengine.ExecException: ERROR 0: java.lang.ClassCastException: org.apache.pig.impl.io.NullableText cannot be cast to org.apache.pig.impl.io.NullableBytesWritable 
  • „Beschreiben“ für beiden Objekte (data_1, data_2) gab guten Ausgang zurück (was ich oben geschrieben)
  • „beschreiben“ für das verbundene Objekt - ALL_DATA, gab auch einen guten Ausgang zurück, so wie es sollte.
  • Ich druckte LIMIT 10 für beide Objekte - sie haben gute Daten.
  • Ich bin mit einem Amazon-Cluster „emr-5.2.0“, mit Schwein Version 0.16.0

Ich bin ein bisschen frustriert, keine Lösung für diesen finden konnte, und ich bin Suche nach einem für 3 Tage jetzt ... Jede Hilfe wäre großartig. Danke!

+0

Veröffentlichen Sie Ihr gesamtes Skript und Beispieldaten. –

Antwort

1

Verwendung unter Befehle

all_data = JOIN data_1 BY TRIM(col_a) LEFT, data_2 by TRIM(col_b); 
all_data = JOIN data_1 BY TRIM(col_a), data_2 by TRIM(col_b); 

lassen Sie mich wissen, ob es ohne einen Fehler gearbeitet hatte.

+0

Es hat tatsächlich funktioniert - obwohl ich keine Leerzeichen entfernen musste ... Können Sie erklären, warum es hilft? Warum ist es ein Problem in den neuen Pig-Versionen? Es löste auch das gleiche Problem mit einem Skript, das auf Schwein 0.12 gut lief und gab mir den gleichen Fehler auf Schwein 0.17. Und vielen Dank!! – Bramat