2014-05-01 2 views
1

Kaggle에서 다운로드 한 transactions.gz 파일을 압축 해제해야합니다. 대략 (2.86GB), 3 억 5 천만 행, 11 열. 3기가바이트 :큰 .gz 파일의 압축을 해제하십시오.

나는 RStudio, 윈도우 비스타 32 비트, RAM에 노력

transactions <- read.table(gzfile("E:/2014/Proyectos/Kaggle/transactions.gz")) 
write.table(transactions, file="E:/2014/Proyectos/Kaggle/transactions.csv") 

하지만 난이 사건을 확인 콘솔

> transactions <- read.table(gzfile("E:/2014/Proyectos/Kaggle/transactions.gz")) 
Error: cannot allocate vector of size 64.0 Mb 
> write.table(transactions, file="E:/2014/Proyectos/Kaggle/transactions.csv") 
Error: cannot allocate vector of size 64.0 Mb 

에이 오류 메시지가 나타날 수 있지만, 나를 위해 작동하지 않았다 : Decompress gz file using R

나는 어떤 제안이라도 인정할 것이다.

+0

어떤 플랫폼을 사용하고 계십니까? linux 기반의 경우 유닉스/쉘 터미널과 인터페이스하여 R에 가져 오기 전에 처리 할 수 ​​있습니다. –

+0

감사합니다. 이제는 내 .csv 파일이 있습니다. – user3591356

답변

2

이 파일은 22GB .csv 파일의 압축을 풉니 다. R이 모든 것을 메모리로 읽어 들일 필요가 있기 때문에 6GB 머신에서 R로 한번에 처리 할 수는 없습니다. postgresql과 같은 RDBMS에서 처리하는 것이 가장 좋습니다. R을 사용하려는 경우 한 번에 처리 할 수있는 행 수를 읽고 청크로 처리하고 처리 한 후 다음 청크로 덮어 쓸 수 있습니다. 이 data.table::fread의 경우 표준 read.table보다 좋을 것입니다.

아, R에서 압축을 풀지 말고 명령 줄에서 gunzip을 실행 한 다음 csv를 처리하십시오. Windows 사용자 인 경우 winzip 또는 7zip을 사용할 수 있습니다.

+0

입력 파일을 삭제하는 응용 프로그램을 좋아하지 않습니다. 'gunzip '을 직접 사용하지 마십시오. 오히려'gzip -c -d'를 사용할 것입니다. –

+0

OK,이 작업은 stdout으로 인쇄되고 리디렉션이 필요합니다. 'gzip -c -d file.csv.gz> file.csv' 또는'zcat file.csv.gz> file.csv' 파일을 열 수 있습니다. 아마도'gunzip -k file.csv.gz '가 가장 간단합니다. –

+0

당신의 도움에 정말 고마워요. – user3591356

관련 문제