Ich habe eine ziemlich große TXT-Datei ~ 9GB und ich möchte diese TXT-Datei in Postgres laden. Die erste Zeile ist die Kopfzeile, gefolgt von allen Daten. Wenn ich die Daten direkt kopiere, erzeugt die Kopfzeile einen Fehler, dass der Datentyp nicht mit meiner postgres-Tabelle übereinstimmt, daher muss ich sie irgendwie entfernen.So machen Sie Postgres Copy ignorieren erste Zeile der großen TXT-Datei
Beispieldaten: projectID, mailid, MailCodeId, prospectid, listid, datemailed, Menge, gespendet, zip, zip4, VectorMajor, VectorMinor, PackageID, Phase, DatabaseID, AMOUNT2
15,53568419,89734,219906,15,2011-05-11 00:00:00,0,0,90720,2915,NonProfit,POLICY,230,3,1,0
16,84141863,87936,164657,243,2011-03-10 00:00:00,0,0,48362,2523,NonProfit,POLICY,1507,5,1,0
16,81442028,86632,15181625,243,2011-01-19 00:00:00,0,0,11501,2115,NonProfit,POLICY,1508,2,1,0
Während die COPY-Funktion für postgres die „Header“ Einstellung hat, die die erste Zeile ignorieren kann, es funktioniert nur für cSV-Dateien:
copy training from 'C:/testCSV.csv' DELIMITER ',' csv header;
wenn ich versuche, den Code oben auf meiner txt-Datei auszuführen, wird es einen Fehler:
copy training from 'C:/testTXTFile.txt' DELIMITER ',' csv header
ERROR: unquoted newline found in data
HINT: Use quoted CSV field to represent newline.
ich versucht habe, den Zusatz „Zitat“ und „Escape“ Attribute, aber der Befehl scheint nicht nur für TXT-Datei zu arbeiten:
copy training from 'C:/testTXTFile.txt' DELIMITER ',' csv header quote as E'"' escape as E'\\N';
ERROR: COPY escape must be a single one-byte character
Alternativ dachte ich über Java laufen oder eine separate stagging erstellen Tabelle, um die erste Zeile zu entfernen ... aber diese Lösungen sind expansiv und zeitaufwendig. Ich muss 9gb Daten nur laden, um die erste Reihe der Überschriften zu entfernen ... gibt es andere Lösungen da draußen, um die erste Reihe einer txt Datei leicht zu entfernen, damit ich die Daten in meine Postgres Datenbank laden kann?
Die _header_ Option, um die erste Zeile nicht entfernt, kein externes Dienstprogramm für das benötigt wird. Wenn das zu "unquoteed newline found in data" führt, stellt sich die Frage: Was ist genau die Struktur Ihrer Datei? Wie unterscheidet es sich von [CSV] (http://en.wikipedia.org/wiki/Comma-separated_values)? –