Desafio 01

Author

Maria Eduarda Villéla Silva

Utilize o conjunto de dados flights.csv.zip disponível em https://www.kaggle.com/usdot/flight-delays e carregue os dados utilizando as funções:

Qual dessas três formas de carregar os dados é mais rápida? (calcule o tempo exato que demorou cada método em carregar os dados no seu computador)

library(reticulate) #pacote para poder usar o python no rstudio
library(readr) #pacote para usar a função read_csv
Warning: package 'readr' was built under R version 4.3.3
#criando um ambiente virtual para usar python
virtualenv_create("env_me315", python = "C:/Program Files/Python312/python.exe")
virtualenv: env_me315
use_virtualenv("env_me315", required = TRUE) #manda usar o ambiente virtual criado
reticulate::py_config() #vendo as configurações do python instalado
python:         \\smb/ra212974/Documentos/.virtualenvs/env_me315/Scripts/python.exe
libpython:      C:/Program Files/Python312/python312.dll
pythonhome:     \\smb/ra212974/Documentos/.virtualenvs/env_me315
version:        3.12.0 (tags/v3.12.0:0fb18b0, Oct  2 2023, 13:03:39) [MSC v.1935 64 bit (AMD64)]
Architecture:   64bit
numpy:          \\smb/ra212974/Documentos/.virtualenvs/env_me315/Lib/site-packages/numpy
numpy_version:  2.3.3

NOTE: Python version was forced by use_python() function
#usando read.csv da base do R
unzip("flights.csv.zip", exdir = tempdir())   # extrai para pasta temporária
system.time({flights <- read.csv(file.path(tempdir(), "flights.csv"),
                                 stringsAsFactors = FALSE)})
  usuário   sistema decorrido 
    45.84      1.31     47.42 
#usando read_csv do pacote readr
system.time({
  flights_readr <- read_csv("flights.csv.zip")})
Rows: 5819079 Columns: 31
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (11): AIRLINE, TAIL_NUMBER, ORIGIN_AIRPORT, DESTINATION_AIRPORT, SCHEDUL...
dbl (20): YEAR, MONTH, DAY, DAY_OF_WEEK, FLIGHT_NUMBER, DEPARTURE_DELAY, TAX...

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
  usuário   sistema decorrido 
    31.53      2.47     17.09 
import pandas as pd #importa o pacote pandas, usado pra manipulação de dataframes
import time         #importa o pacote time, usado para medir o tempo de execução 

start = time.time() #marca o tempo inicial antes de ler o arquivo
#lê o arquivo "flights.csv" e armazena os dados em um DataFrame chamado flights_pd
flights_pd = pd.read_csv("flights.csv.zip")
<string>:2: DtypeWarning: Columns (7,8) have mixed types. Specify dtype option on import or set low_memory=False.
end = time.time() #marca o tempo final após a leitura do arquivo
#calcula a diferença entre end e start (tempo total de leitura) e imprime na tela
print("Tempo:", end - start, "segundos")
Tempo: 23.617331981658936 segundos

Observe que o Python (read_csv do pandas) lê mais rápido, tendo o menor tempo de execução dentre as três funções utilizadas.