Es wurde versucht, die Daten einer einzelnen Spalte aus einer großen CSV-Datei zu exportieren

1

Problem: Ich versuche, eine einzelne Spalte einer CSV-Datei mit einer Größe von 7 GB (die groß genug ist, dass ich nicht die gesamte Datei in Excel oder den meisten Texteditoren öffnen kann) in eine kleinere Datei zu exportieren das kann ich dann nutzen oder in eine datenbank stellen ohne alle nicht benötigten informationen.

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

Alternative ?: Alternativ gibt es bei der Verwendung von Powershell höchstwahrscheinlich einen Weg von dem, was ich aufgrund dieser Frage gesehen habe , aber ich bin mir nicht sicher, wo ich damit anfangen soll.

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

Jede Hilfe wird sehr geschätzt!

OtterJesus
quelle
Hast du diese Antwort gesehen ? Es sieht so aus, als ob die Datei trotz Ihrer Bedenken hinsichtlich der Dateigröße mit einem recht geringen Arbeitsaufwand verarbeitet werden könnte.
Slartibartfast
Ja @Slartibartfast, das hätte auch eine mögliche Lösung sein können. Möglicherweise muss ich noch einige Teile davon verwenden, da die (jetzt erfolgreich extrahierte) Spalte, die ich benötigte, immer noch mehr als 1.000.000 Zeilen umfasst. Vielen Dank für Ihre Antwort!
OtterJesus

Antworten:

0

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 die Komma-Trennung

$CSV = Get-Content $LargeFileName | ConvertFrom-Csv | Select $ColumnHeading1, $ColumnHeading2  | Export-Csv -Path $OutFileName -NoTypeInformation
Antonius
quelle
Es dauerte eine Weile, bis es ausgeführt wurde, da die Datei so groß war, aber es schien zu funktionieren. Danke vielmals!
OtterJesus
Wie kann ich im Nachhinein mehrere Spalten in derselben Datei auswählen? Wählen Sie $ Position1 $ Position 2? oder etwas anderes?
OtterJesus