<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div><span>Veja os pacotes bigmemory, bigmatrix, entre outros big...</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; "><span><br></span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; "><span>Costumo abrir arquivos com 20Gb sem problema de Swap.</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; "><span><br></span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal;
 ">Valeu!</div><div><span></span></div><div> </div><div>        Fábio Mathias Corrêa<br><br></div><div>     Universidade Estadual de Santa Cruz<br>Departamento de Ciências Exatas e da Terra - DCET</div><br><br><div>Campus Soane Nazaré de Andrade, km 16 Rodovia Ilhéus-Itabuna<br>CEP 45662-900. Ilhéus-Bahia</div><div><br><br></div><div>Tel.: 73-3680-5076<br>  <div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "> <div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "> <div dir="ltr"> <font size="2" face="Arial"> <hr size="1">  <b><span style="font-weight:bold;">De:</span></b> Roney Fraga <roneyfraga@gmail.com><br> <b><span style="font-weight: bold;">Para:</span></b> R-br <r-br@listas.c3sl.ufpr.br> <br> <b><span style="font-weight: bold;">Enviadas:</span></b> Terça-feira, 16 de Outubro de 2012 13:41<br> <b><span style="font-weight:
 bold;">Assunto:</span></b> [R-br] Trabalhar com muitos dados<br> </font> </div> <br><div id="yiv1757534035">Caros,<br><div class="yiv1757534035gmail_quote"><div><div dir="ltr"><div><br></div><div>Estou trabalhando com os dados dos 
censos populacionais de 2000 e 2010. A minha dificuldade é o volume de 
dados, pois cada censo tem aproximadamente 20 milhões de linhas. 
Considerando os dados estão em arquivos .csv, um único aquivo de 12 GB 
para o censo de 2010 e um arquivo para cada estado no censo de 2000, que
 totalizam 11 GB. Utilizo um notebook com processador Intel Core i5 
2410M, 8 GB de ram com 3 GB de SWAP e o sistema operacional é o Arch 
Linux. Tenho quatro dúvidas que estão abaixo em meio da minha explicação sobre os problemas que venho enfrentando.<br></div>
<div><br></div><div>Para ler os arquivos .csv conheço as seguintes opções:<br><br></div><div class="yiv1757534035im"><div>a) trabalhar com um banco de dados relacional. </div><div>R.: estou com um problema com o postgresql que ainda não tenho solução, portanto, essa alternativa esta descartada no momento.</div>

<div><br></div><div>b) utilizar o sqldf.</div><div>R.: acredito que o 
sqldf não é eficiênte para trabalhar com arquivos grandes, o processo é 
encerrado antes de concluir a operação. Exemplo:</div><div><br></div><div>> library(sqldf)</div>
<div>> read.csv.sql('censo00ba1.csv', sql = "select V0102 from file", header = TRUE, sep = ",")</div><div>[ reached getOption("max.print") -- omitted 1498127 rows ]</div><div>Warning messages:</div>

<div>1: closing unused connection 4 (censo00ba1.csv) </div><div>2: closing unused connection 5 (censo00ba1.csv) </div><div><br></div><div>1ª dúvida: isso sempre acontece com o sqldf, ou alguém consegue utilizá-lo com para ler arquivos grandes?</div>

<div><br></div><div>c) utilizar o comando cut e grep do Linux/Mac para 
filtrar os dados e ter um arquivo .csv menor, dessa forma é possível ler
 o arquivo pelo comando do R, read.csv().</div><div>R.: utilizei essa opção. Exemplo:</div>
<div>cut -d',' -f1,4,5,6,10,79,81,84,91,92,95,97,111,113,114,149,150,188  br2010.csv > br2010b.csv</div><div><br></div><div>Uma
 vez superada a dificuldade da importação dos dados deletei algumas 
coisas e fiquei com três arquivos com as seguintes dimensões:</div>
<div>> dim(cs);dim(cs2000);dim(cs2010)</div><div>[1] 6077327      23<span style="white-space:pre-wrap;">    </span>          # censos 2000 e 2010 </div><div>[1] 2865716      23<span style="white-space:pre-wrap;">    </span>          # censo 2000</div>

<div>[1] 3211611      23<span style="white-space:pre-wrap;">       </span>          # censo 2010</div><div><br></div></div><div>Quanto ao processamento:<br><br></div><div class="yiv1757534035im"><div>d) Consigo rodar regressão simples para o censo de 2000 e para o censo de 2010 separadamente, como segue exemplo: </div>

<div><br></div><div>> ma <- lm(lnrenda ~ factor(ee) + idade + 
idade2 + factor(tt) + factor(cor.raca) + rural + feminino + migrante + 
factor(UF), data=cs2000)</div><div>> mb <- lm(lnrenda ~ factor(ee)
 + idade + idade2 + factor(tt) + factor(cor.raca) + rural + feminino + 
migrante + factor(UF), data=cs2010)</div>
<div><br></div><div>mas não consigo rodar o mesmo modelo para os dados 
do arquivo 'cs', que tem 6.077.327 linhas, que é censo 2000 mais censo 
2010. Pois, aparece a seguinte mensagem de erro:</div><div>> mc <-
 lm(lnrenda ~ factor(ee) + idade + idade2 + factor(tt) + 
factor(cor.raca) + rural + feminino + migrante + factor(UF) + 
factor(ano), data=cs)</div>
<div>Error: cannot allocate vector of size 2.0 Gb</div><div><br></div></div><div>2ª dúvida: qual procedimento posso utilizar para solucionar esse problema de rodar a regressão das 6.077.327 observações?</div><div>Um amigo indicou aumentar a memória SWAP, essa é uma boa opção?</div>
<div class="yiv1757534035im">
<div><br></div><div>3ª dúvida: ao realizar um processo que demanda muita
 memória ram o R não consegue realizar outro processo pesado em seguida,
 pois a memória fica ocupada. Exemplo, ao rodar uma regressão em uma 
base de dados com 3 milhões de linhas eu não consigo realizar outra 
regressão pq a memória fica cheia. Dúvida, tem como 'limpar' os dados da
 memória para poder realizar outros cálculos?</div>
<div><br></div><div>4ª dúvida: trabalhar com paralelismo pode auxiliar nesse tipo de processamento?</div><div><br></div><div><br></div><div>Grato pela atenção.</div><div>Roney </div></div></div></div></div>
</div><br>_______________________________________________<br>R-br mailing list<br><a ymailto="mailto:R-br@listas.c3sl.ufpr.br" href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br><a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br><br> </div> </div>  </div></div></body></html>