Ich muss eine Tabelle von Teradata (nur Lesezugriff) auf Parkett mit Scala (2.11) / Spark (2.1.0) extrahieren. Ich baue einen Datenrahmen, den ich erfolgreich laden kann
%Vor% Aber df.show
gibt mir eine NullPointerException:
Ich habe df.printSchema
gemacht und herausgefunden, dass der Grund für diese NPE darin liegt, dass das Dataset null
-Werte für (nullable = false)
Spalten enthält (es sieht so aus, als würde Teradata mir falsche Informationen geben). Tatsächlich kann ich df.show
erreichen, wenn ich die problematischen Spalten ablege.
Also habe ich versucht, ein neues Schema anzugeben, bei dem alle Spalten auf (nullable = true)
:
Aber dann habe ich:
%Vor%Ich habe auch versucht, einen neuen Datenrahmen aus dem vorherigen zu erstellen, indem ich das gewünschte Schema spezifiziere:
%Vor%Aber ich habe immer noch eine NPE, wenn ich Maßnahmen am Datenrahmen ergreife.
Irgendeine Idee, wie ich das beheben könnte?
Ich denke, das ist in Teradata letzte Version Gläser gelöst, Nach all den Recherchen habe ich meine Teradata Gläser (Terajdbc4.jar und tdgssconfig.jar) Version auf 16.20.00.04 aktualisiert und die Teradata-URL geändert
%Vor%Das funktioniert, nachdem ich die Teradta-URL-Eigenschaften hinzugefügt habe COLUMN_NAME = ON, MAYBENULL = ON
Jetzt funktioniert alles gut.
Sie können das Referenzdokument hier überprüfen
Tags und Links scala apache-spark dataframe apache-spark-sql teradata