Big data, tibble diminuto
En el último ejercicio, cuando copiaste los datos a Spark, copy_to() devolvió un valor. Ese valor de retorno es un tipo especial de tibble() que no contiene datos propios. Para explicarlo, necesitas saber un poco sobre cómo los paquetes del tidyverse almacenan datos. Los tibbles suelen ser una variante de los data.frame con un método de impresión más cómodo. Sin embargo, dplyr también permite que almacenen datos de una fuente remota, como bases de datos y, como en este caso, Spark. Para conjuntos de datos remotos, el objeto tibble simplemente guarda una conexión a los datos remotos. Esto se verá con más detalle más adelante, pero lo importante por ahora es que, aunque tengas un conjunto de datos grande, el tamaño del objeto tibble es pequeño.
En el lado de Spark, los datos se almacenan en una variable llamada DataFrame. Esto es, más o menos, el equivalente directo del tipo de variable data.frame de R. (Aunque los tipos de las columnas se nombran de forma ligeramente distinta: por ejemplo, las columnas numeric se llaman columnas DoubleType.) A lo largo del curso se usará el término data frame, salvo que sea necesario aclarar entre data.frame y DataFrame. Como estos tipos también son análogos a las tablas de una base de datos, a veces también se usará el término tabla para describir este tipo de datos rectangulares.
Llamar a tbl() con una conexión a Spark y una cadena con el nombre del data frame de Spark devolverá el mismo objeto tibble que se devolvió cuando usaste copy_to().
Una herramienta útil que verás en este ejercicio es la función object_size() del paquete pryr. Te muestra cuánta memoria ocupa un objeto.
Este ejercicio forma parte del curso
Introducción a Spark con sparklyr en R
Instrucciones del ejercicio
Ya tienes creada una conexión a Spark como spark_conn. Los metadatos de 1.000 pistas están almacenados en el clúster de Spark en la tabla "track_metadata".
- Enlaza la tabla
"track_metadata"usandotbl(). Asigna el resultado atrack_metadata_tbl. - Consulta el tamaño del conjunto de datos usando
dim()sobretrack_metadata_tbl. - Comprueba lo poco que ocupa el tibble usando
object_size()sobretrack_metadata_tbl.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Link to the track_metadata table in Spark
track_metadata_tbl <- ___(___, "___")
# See how big the dataset is
___(___)
# See how small the tibble is
___(___)