MPMG-DCC-UFMG / M04

Mineração de Grafos como Suporte para a Construção de Trilhas
GNU General Public License v3.0
1 stars 1 forks source link

Isolate data filtering/cleaning module #29

Closed LeandroGripp closed 2 years ago

LeandroGripp commented 2 years ago

Atualmente, temos um módulo de obtenção e limpeza de dados. Devemos, assim, isolar o módulo de filtragem e limpeza de dados. O módulo deverá:

LeandroGripp commented 2 years ago

O módulo foi isolado e conta com as funcionalidades determinadas acima, salvo a de filtrar por período, que será desenvolvido na outra Issue. Contudo, o script de filtragem já é capaz de receber os parâmetros de linha de comando que especificarão data de início e de fim, além de valor máximo. Atualmente, ele conta com uma pasta que servirá para armazenamento intermediário dos arquivos (raw-input), um script que faz as validações necessárias e gera os arquivos filtrados (validation.py) e um shell script que controla a rotina, primeiramente pegando os arquivos no hadoop, os encaminhando para o script de validação e, finalmente, os colocando no diretório de saída do módulo, que deve ser especificado ao chamar o shell script

LeandroGripp commented 2 years ago

No momento que escrevo, ainda tem o arquivo de determinação dos pesos dos vínculos, mas esse será movido para o módulo 3, posteriormente

LeandroGripp commented 2 years ago

Finalmente, a chamada do módulo se faz através do shell script principal clean-filter-data.sh, da seguinte forma: ./clean-filter-data.sh <OUTPUT_PATH> [--optional-args], em que é o diretório onde desejamos que os arquivos de saída do módulo sejam colocados (parâmetro obrigatório) e os argumentos opcionais são: --start-date=dd/mm/yyyy --end-date=dd/mm/yyyy --max-value=XXXXXXX Assim, uma chamada exemplo com todos os argumentos seria: ./clean-filter-data.sh ../output-module-2 --start-date=01/02/2019 --end-date=01/11/2019 --max-value=30000 Assim, obteríamos todas as licitações entre fevereiro de 2019 e 01/11/2019 com valor menor ou igual a 30000 reais. A ordem dos argumentos opcionais é irrelevante e, em caso de não desejarmos especificar algum deles, basta omiti-lo. Não é necessário utilizar nenhum valor padrão.