Попытка экспортировать данные одного столбца из большого файла CSV

427
OtterJesus

Проблема: я пытаюсь экспортировать один столбец файла .CSV размером 7 гигабайт (достаточно большой, чтобы я не мог открыть весь файл в Excel ... или большинстве текстовых редакторов в этом отношении) в меньший файл что я могу затем использовать или поместить в базу данных без всей ненужной информации.

Power Query : я установил «соединение» с файлом, а затем выбрал только нужный столбец, но я не уверен, есть ли способ его экспортировать.

Альтернатива ?: Альтернативно, используя Powershell, скорее всего, есть способ найти то, что я видел, основываясь на этом вопросе, но я не уверен, с чего начать.

Если бы были какие-то другие ресурсы, которые были бы лучше для этого, любая помощь, указывающая мне правильное направление, была бы удивительной.

Любая помощь очень ценится!

1
Вы видели [этот ответ] (https://stackoverflow.com/questions/41058424/powershell-streamreader-make-variable-from-each-rreadline)? Похоже, что он может обработать файл, несмотря на ваш размер файла с довольно небольшим объемом работы. Slartibartfast 5 лет назад 0
Да @Slartibartfast, это также могло быть возможным решением. Возможно, мне все еще придется использовать некоторые его части, так как нужный мне столбец (теперь успешно извлеченный) по-прежнему содержит более 1 000 000 строк. Спасибо за ваш ответ! OtterJesus 5 лет назад 0

1 ответ на вопрос

0
Antony

Использование метода PowerShell

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

Настройте переменные LargeFileName.csv, Header ColumnName и OutFileName.csv в соответствии со своими требованиями.

Этот следующий метод PowerShell, использующий gc и ConvertFrom-Csv, обеспечивает более быстрый результат.

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

Чтобы получить больше заголовков, используйте разделение запятыми

$CSV = Get-Content $LargeFileName | ConvertFrom-Csv | Select $ColumnHeading1, $ColumnHeading2 | Export-Csv -Path $OutFileName -NoTypeInformation 
Потребовалось время для запуска из-за размера файла, но, похоже, это сработало. Большое спасибо! OtterJesus 5 лет назад 0
В качестве продолжения, как мне выбрать несколько столбцов в одном файле? Выберите $ heading1 $ заголовок 2? или что-то другое? OtterJesus 5 лет назад 0

Похожие вопросы