PowerShell을 사용하여 대용량 CSV 파일을 분리하는 문제

전자기학

큰 CSV 파일을 작은 파일로 나누려 는 데이터의 예 입니다. 원본 파일 : 5,055,000 줄의 엑셀 데이터. 원하는 파일 : 파일 당 500,000 줄의 데이터. 그러나 어떤 일이 있어도 절대 해결할 수없는 두 가지 반복되는 오류가 있습니다.

내가하려는 것은 CSV 파일을 열고 최대 500,000 줄을 가져온 다음 즉시 일련의 새 CSV 파일로 내 보내서 500k마다 새 파일을 만드는 것입니다.

$sourceCSV = "E:\Data\032110-26AM.CSV"
$startrow = 0 ;
$counter = 1 ;
while ($startrow -lt5055000)
{

Import-CSV $sourceCSV | select-object -skip $startrow -first 500000 | Export-CSV "E:\Data\032110-26AM_SPLITFILE2$($counter).csv" -NoClobber;

$startrow += 500000 ;
$counter++ ;
}

코드가 내 파일을 통과하여 11 개의 작은 파일을 만들 것으로 예상했습니다. 그러나 다음과 같은 오류가 발생합니다.

At line:7 char:62
+ ... mport-CSV $sourceCSV | select-object -skip $startrow -first <500000>  ...
+                     ~
The '<' operator is reserved for future use.

Booga Roo

다음은 루프 내에서 사용되는 숫자를 하드 코딩하지 않는 솔루션입니다. 500 줄의 CSV에서 테스트되었습니다. 파일 경로, 숫자 등에 맞게 조정하십시오.

$sourceCSV = "C:\scripts\test.csv"
$startrow = 0
$endrow = 500
$readcount = 50
$counter = 1
while ($startrow -lt $endrow)
{
Import-CSV $sourceCSV | Select-Object -Skip $startrow -First $readcount | Export-CSV $("C:\scripts\test_"+"$counter.csv") -NoClobber -NoTypeInformation
$startrow = $startrow + $readcount
$counter++
}

사용하는 데.가 필요할 수도 있고 필요하지 않을 수도 -NoTypeInformation있지만 많은 도구가 맨 위에 추가 정보 줄이있는 형식을 인식하지 못하기 때문에 다른 PowerShell 스크립트가 아닌 다른 것에 결과를 제공하려는 경우 도움이 될 수 있습니다. .

우연히도 원본 "CSV"파일은 상단에 추가 줄이 추가되어 오염되었으므로 먼저 제거해야합니다. 여기에 내 원래 답변과 일치하는 방법이 있습니다. 또한 요청에 따라 예측할 수없는 파일 크기를 고려하기 위해 조정을 추가했습니다.

$initialsourceCSV = "C:\scripts\testwithjunk.csv"
$initialskip = 6
Get-Content $initialsourceCSV | Select-Object -Skip $initialskip | Out-File -FilePath "C:\scripts\temp.csv"
$sourceCSV = "C:\scripts\temp.csv"
$startrow = 0
$endrow = (get-content $sourceCSV).Length
$readcount = 50
$counter = 1
while ($startrow -lt $endrow)
{
Import-CSV $sourceCSV | Select-Object -Skip $startrow -First $readcount | Export-CSV $("C:\scripts\test_"+"$counter.csv") -NoClobber -NoTypeInformation
$startrow = $startrow + $readcount
$counter++
}
Remove-Item "C:\scripts\temp.csv"

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

결합을 사용하여 대용량 CSV 파일을 처리 할 때 Clover ETL 성능 문제

CSV를 사용하여 파일을 제거하는 PowerShell

Python을 사용하여 USPTO 대량 XML 파일 구문 분석

Powershell을 사용하여 CSV 파일에서 열 제거

Powershell을 사용하여 CSV 파일에서 줄 제거

PowerShell을 사용하여 .csv 파일의 마지막 행 제거

Powershell을 사용하여 csv 파일 끝에서 빈 행 삭제

PowerShell을 사용하여 CSV 파일에서 빈 줄 제거

Powershell을 사용하여 JSON 출력을 CSV 파일로 구문 분석

Python 및 멀티 스레딩을 사용하여 대용량 CSV 파일 처리

대용량 CSV 파일을 빠르게 구문 분석

Python을 사용하여 대용량 CSV 파일을 MySQL로 가져오기

대용량 CSV 파일 처리를 처리하거나 대용량 CSV 파일을 청크로 읽는 방법

Python을 사용하여 AWS의 Postgres RDS에 대용량 CSV 파일 업로드

Laravel을 사용하여 MySQL에서 대용량 CSV 파일 가져 오기

PowerShell을 사용하여 숫자 파일 쌍 대량 처리

Powershell을 사용하여 CSV의 열에서 문자열 제거

배치 파일을 사용하여 csv 파일에서 특수 문자 제거

14.04에서 R을 사용하여 .csv 파일을 쓰는 문제

C #을 사용하여 .csv 파일에 데이터를 추가하는 문제

여러 CSV 파일을 처리하고 powershell을 사용하여 이중 세미콜론 문자가있는 단일 열에서 행 삭제

Powershell을 사용하여 폴더의 여러 csv 파일에서 빈 행 삭제

파이썬을 사용하여 대용량 파일 압축 해제

PHP를 사용하여 CSV 파일을 구문 분석하는 방법

PHP를 사용하여 CSV 파일을 열로 구문 분석

PHP를 사용하여 csv 파일에서 문자열을 분리하는 방법은 무엇입니까?

CsvHelper를 사용하여 CSV 파일에서 셀 값을 가져 오는 문제

PHP를 사용하여 csv 파일을 mySQL로 가져 오는 문제

PowerShell을 사용하여 내 csv 파일에 문자열을 추가하고 새 열을 만드는 방법