sqoop-export fehlschlägt, wenn ich die \N als Daten
Iam immer folgende Fehlermeldung, wenn ich meine sqoop-export-Befehl.
Dies ist mein Inhalt exportiert werden, die von sqoop-Befehl
00001|Content|1|Content-Artikel|\N|2015-02-1815:16:04/2015-02-1815:16:04/1 |\N|\N|\N|\N|\N|\N|\N|\N|\N 00002|Content|1|Content-Artikel|\N|2015-02-1815:16:04/2015-02-1815:16:04/1 |\N|\N|\N|\N|\N|\N|\N|\N|\N
sqoop Befehl
sqoop export --connect jdbc:postgresql://10.11.12.13:1234/db --table table1 --username user1 --password pass1--export-dir /hivetables/table/ --fields-terminated-by '|' --lines-terminated-by '\n' -- --schema schema
15/06/09 08:05:16 INFO-mapreduce.Aufgabe: Task-Id :
attempt_1431442954745_1210_m_000001_0, Status : FEHLGESCHLAGEN Fehler:
java.io.IOException: Kann keine Daten exportieren, überprüfen Sie bitte fehlgeschlagenen map-Aufgabe
Protokolle
bei org.apache.sqoop.mapreduce.TextExportMapper.Karte(TextExportMapper.java:112)
bei org.apache.sqoop.mapreduce.TextExportMapper.Karte(TextExportMapper.java:39)
bei org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
bei org.apache.sqoop.mapreduce.AutoProgressMapper.run(AutoProgressMapper.java:64)
bei org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
bei org.apache.hadoop.mapred.MapTask.run(MapTask.java:340)
bei org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168)
bei java.Sicherheit.AccessController.doPrivileged(Native Method)
bei javax.Sicherheit.auth.Thema.doAs(Subject.java:415)
bei org.apache.hadoop.Sicherheit.UserGroupInformation.doAs(UserGroupInformation.java:1594)
bei org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163), Verursacht durch: java.lang.RuntimeException: nicht Parsen von input-Daten: '\N'
bei duser.__loadFromFields(duser.java:690)
bei duser.parse(duser.java:558)
bei org.apache.sqoop.mapreduce.TextExportMapper.Karte(TextExportMapper.java:83)
... 10 mehr Verursacht durch: java.lang.IllegalArgumentException: Timestamp-format muss yyyy-mm-dd hh:mm:ss[.fffffffff]
bei java.sql.Timestamp.valueOf(Zeitstempel.java:202)
bei duser.__loadFromFields(duser.java:627)
Können Sie mir helfen es zu lösen ?
- Können Sie gemeinsam das schema der postgres-Tabelle?
- Versuchen Sie, diese Argumente der export-Anweisung --input-null-string "\\\\N" --input-null- " nicht-string "\\\\N"
- Es funktionierte - @highonprogramming, fügen Sie diese in den Antwort-Abschnitt.
- Froh, dass es funktionierte. Ich habe es als Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, diese Argumente der export-Anweisung
Aus der Dokumentation:
Wenn Sie nicht fügen Sie diese Argumente, Sie werden nicht in der Lage zu verstehen, dass die
\N
in Ihre Daten tatsächlichnull
.Das problem scheint zu sein, die Reihenfolge, in der die Spalten die importiert wird. Sqoop nicht automatisch verstehen die Spalte mapping. Versuchen Sie es mit
--columns
argument geben Sie die Reihenfolge der Spalten angezeigt werden. Hier ist, wie es zu benutzen:sqoop export --connect jdbc:postgresql://10.11.12.13:5432/reports ... --columns col1,col2,col3,...
Sehen http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_purpose_4 für die Dokumentation auf, wie Sie mit
--columns
.Caused by: java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd
ist der Fehler zu betrachten. Ich würde Ihre Frage auf den sqoop-mailing-Liste, wo Sie können spazieren Sie durch die Ausgabe.