Enviar - Extraer - Limpiar
Ya has usado dbGetQuery() varias veces. Es una función virtual del paquete DBI, pero en realidad la implementa el paquete RMySQL. Entre bambalinas, se realizan los siguientes pasos:
- Enviar la consulta especificada con
dbSendQuery(); - Extraer el resultado de ejecutar la consulta en la base de datos con
dbFetch(); - Limpiar el resultado con
dbClearResult().
Esta vez no usemos dbGetQuery() y apliquemos los pasos anteriores. Es pesado de escribir, pero te permite extraer el resultado de la consulta por partes en lugar de todo de una vez. Puedes hacerlo especificando el argumento n dentro de dbFetch().
Este ejercicio forma parte del curso
Importación intermedia de datos en R
Instrucciones del ejercicio
- Revisa la llamada a
dbSendQuery()que ya está escrita para ti. Selecciona los comentarios de los usuarios con un id mayor que 4. - Usa
dbFetch()dos veces. En la primera llamada, importa solo dos registros del Resultado de la consulta estableciendo el argumentonen2. En la segunda llamada, importa todas las consultas restantes (no especifiquesn). En ambas llamadas, simplemente imprime los data frames resultantes. - Limpia
rescondbClearResult().
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# Connect to the database
library(DBI)
con <- dbConnect(RMySQL::MySQL(),
dbname = "tweater",
host = "courses.csrrinzqubik.us-east-1.rds.amazonaws.com",
port = 3306,
user = "student",
password = "datacamp")
# Send query to the database
res <- dbSendQuery(con, "SELECT * FROM comments WHERE user_id > 4")
# Use dbFetch() twice
# Clear res