Versuch, die Daten einer einzelnen Spalte aus einer großen CSV-Datei zu exportieren

545
OtterJesus

Problem: Ich versuche, eine einzelne Spalte einer .CSV-Datei mit einer Größe von 7 Gigs (groß genug, dass ich die gesamte Datei nicht in Excel öffnen kann ... oder die meisten Texteditoren für diese Angelegenheit) in eine kleinere Datei zu exportieren dass ich dann ohne alle nicht benötigten Informationen verwenden oder in eine Datenbank stellen kann.

Power Query : Ich habe eine "Verbindung" zu der Datei hergestellt und dann nur die gewünschte Spalte ausgewählt, aber ich bin nicht sicher, ob es eine Möglichkeit gibt, diese zu exportieren.

Alternative ?: Alternativ zu Powershell gibt es wahrscheinlich einen anderen Weg, als ich anhand dieser Frage gesehen habe, aber ich bin mir nicht sicher, wo ich damit anfangen soll.

Wenn es andere Ressourcen gibt, die dafür besser wären, wäre alles, was mir dabei hilft, in die richtige Richtung zu weisen, großartig.

Jede Hilfe wird sehr geschätzt!

1
Haben Sie [diese Antwort] gesehen (https://stackoverflow.com/questions/41058424/powershell-streamreader-make-variable-from-each-rreadline)? Es sieht so aus, als könnte die Datei trotz einiger Dateigröße mit relativ wenig Aufwand verarbeitet werden. Slartibartfast vor 5 Jahren 0
Ja @Slartibartfast, das hätte auch eine mögliche Lösung sein können. Möglicherweise muss ich noch einige Teile verwenden, da die (jetzt erfolgreich extrahierte) Spalte, die ich benötigte, immer noch 1.000.000 Zeilen enthält. Vielen Dank für Ihre Antwort! OtterJesus vor 5 Jahren 0

1 Antwort auf die Frage

0
Antony

Verwenden der PowerShell-Methode

Import-csv -Path $LargeFileName | Select-Object -Property $ColumnName | Export-Csv -Path $OutFileName -NoTypeInformation 

Passen Sie die Variablen LargeFileName.csv, Header ColumnName und OutFileName.csv an Ihre Anforderungen an

Diese folgende PowerShell-Methode verwendet gc und ConvertFrom-Csv, um ein schnelleres Ergebnis zu erzielen.

$CSV = Get-Content $LargeFileName | ConvertFrom-Csv | Select $ColumnHeading | Export-Csv -Path $OutFileName -NoTypeInformation 

Um mehr Überschriften zu erhalten, verwenden Sie eine Komma-Trennung

$CSV = Get-Content $LargeFileName | ConvertFrom-Csv | Select $ColumnHeading1, $ColumnHeading2 | Export-Csv -Path $OutFileName -NoTypeInformation 
Aufgrund der Größe der Datei dauerte es eine Weile, aber es schien zu funktionieren. Danke vielmals! OtterJesus vor 5 Jahren 0
Wie würde ich als Folge mehrere Spalten in derselben Datei auswählen? Wählen Sie $ header1 $ head2 aus. oder etwas anderes? OtterJesus vor 5 Jahren 0