Big data, tiny tibble
In de vorige oefening, toen je de gegevens naar Spark kopieerde, gaf copy_to() een waarde terug. Deze retourwaarde is een speciaal soort tibble() die zelf geen data bevat. Om dat uit te leggen, moet je iets weten over hoe tidyverse-pakketten data opslaan. Tibbles zijn meestal gewoon een variant op data.frames met een prettigere printmethode. Maar dplyr laat ze ook data uit een externe gegevensbron opslaan, zoals databases en – zoals hier – Spark. Voor externe gegevenssets slaat het tibble-object simpelweg een connectie naar de externe data op. Dit komt later uitgebreider aan bod, maar het belangrijkste punt is nu dat, ook al heb je een grote gegevensset, de grootte van het tibble-object klein is.
Aan de Spark-kant worden de gegevens opgeslagen in een variabele die DataFrame heet. Dit is min of meer het directe equivalent van het data.frame-variabeletype in R. (Al heten de kolomtypen net iets anders – zo worden numeric-kolommen bijvoorbeeld DoubleType-kolommen genoemd.) Door de hele cursus gebruiken we de term data frame, tenzij onderscheid nodig is tussen data.frame en DataFrame. Omdat deze typen ook lijken op databasetabellen, gebruiken we soms ook de term tabel voor dit soort rechthoekige data.
tbl() aanroepen met een Spark-verbinding en een string met de naam van het Spark data frame geeft hetzelfde tibble-object terug als toen je copy_to() gebruikte.
Een handig hulpmiddel dat je in deze oefening ziet, is de functie object_size() uit het pryr-pakket. Deze laat zien hoeveel geheugen een object inneemt.
Deze oefening maakt deel uit van de cursus
Introductie tot Spark met sparklyr in R
Oefeninstructies
Er is al een Spark-verbinding voor je gemaakt als spark_conn. De trackmetadata voor 1.000 tracks staat in het Spark-cluster in de tabel "track_metadata".
- Koppel naar de tabel
"track_metadata"mettbl(). Wijs het resultaat toe aantrack_metadata_tbl. - Kijk hoe groot de gegevensset is met
dim()optrack_metadata_tbl. - Kijk hoe klein de tibble is met
object_size()optrack_metadata_tbl.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# Link to the track_metadata table in Spark
track_metadata_tbl <- ___(___, "___")
# See how big the dataset is
___(___)
# See how small the tibble is
___(___)