From 68b4fd273bbcec1ef29120cf396d8a8012e1ab3c Mon Sep 17 00:00:00 2001 From: LukaOliveira Date: Wed, 12 Feb 2025 22:58:41 -0300 Subject: [PATCH] Adicicao de Garbage Collector (GC) para economia de RAM --- dados_cnpj_para_sqlite.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/dados_cnpj_para_sqlite.py b/dados_cnpj_para_sqlite.py index d9c71ed..6269fd3 100644 --- a/dados_cnpj_para_sqlite.py +++ b/dados_cnpj_para_sqlite.py @@ -18,7 +18,7 @@ import pandas as pd, sqlite3, sqlalchemy import glob, time, dask.dataframe as dd -import os, sys, zipfile +import os, sys, zipfile, gc dataReferencia = 'xx/xx/2024' #input('Data de referĂȘncia da base dd/mm/aaaa: ') pasta_compactados = r"dados-publicos-zip" #local dos arquivos zipados da Receita @@ -59,6 +59,11 @@ def carregaTabelaCodigo(extensaoArquivo, nomeTabela): dtab = pd.read_csv(arquivo, dtype=str, sep=';', encoding='latin1', header=None, names=['codigo','descricao']) dtab.to_sql(nomeTabela, engine, if_exists='replace', index=None) engine.execute(f'CREATE INDEX idx_{nomeTabela} ON {nomeTabela}(codigo);') + + #Coleta de lixo (liberar RAM) + del dtab + gc.collect() + if bApagaDescompactadosAposUso: print('apagando arquivo '+arquivo) os.remove(arquivo) @@ -152,6 +157,11 @@ def carregaTipo(nome_tabela, tipo, colunas): #dask possibilita usar curinga no nome de arquivo, por ex: #ddf = dd.read_csv(pasta_saida+r'\*' + tipo, sep=';', header=None, names=colunas ... ddf.to_sql(nome_tabela, engine_url, index=None, if_exists='append', dtype=sqlalchemy.sql.sqltypes.TEXT) + + #Coleta de lixo (liberar RAM) + del ddf + gc.collect() + if bApagaDescompactadosAposUso: print(f'apagando o arquivo {arq=}') os.remove(arq)