Velká data, malinký tibble
V předchozím cvičení, když jsi zkopíroval/a data do Sparku, vrátila funkce copy_to() určitou hodnotu. Tato návratová hodnota je speciální druh tibble(), který sám o sobě žádná data neobsahuje. Abys tomu lépe rozuměl/a, je potřeba vědět, jak tidyverse balíčky ukládají data. Tibbles jsou obvykle jen variantou data.frameů s hezčím způsobem zobrazení. dplyr ale umožňuje ukládat v nich i data ze vzdáleného zdroje – například z databází nebo, jako v tomto případě, ze Sparku. U vzdálených datových sad tibble objekt jednoduše uchovává připojení ke vzdáleným datům. Tímto se budeme podrobněji zabývat později, ale důležité je teď to, že i když pracuješ s velkým datasetem, samotný tibble objekt je malý.
Na straně Sparku jsou data uložena v proměnné zvané DataFrame. Ta je víceméně přímým ekvivalentem datového typu data.frame v R. (Typy sloupců se ale trochu liší – například sloupce typu numeric se tu nazývají DoubleType.) V celém kurzu budeme používat termín data frame, pokud nebude potřeba rozlišovat mezi data.frame a DataFrame. Protože tyto typy jsou také analogické databázovým tabulkám, bude se pro tento druh obdélníkových dat někdy používat i termín tabulka.
Zavoláš-li tbl() se Spark připojením a řetězcem s názvem Spark data framu, vrátí se stejný tibble objekt, jako když jsi použil/a copy_to().
Užitečným nástrojem, který v tomto cvičení uvidíš, je funkce object_size() z balíčku pryr. Ta ti ukáže, kolik paměti daný objekt zabírá.
Toto cvičení je součástí kurzu
Úvod do Sparku se sparklyr v R
Pokyny k cvičení
Spark připojení je pro tebe připraveno jako spark_conn. Metadata skladeb pro 1 000 skladeb jsou uložena v Spark clusteru v tabulce "track_metadata".
- Připoj se k tabulce
"track_metadata"pomocítbl(). Výsledek přiřaď dotrack_metadata_tbl. - Zjisti, jak velký dataset je, pomocí
dim()natrack_metadata_tbl. - Zjisti, jak malý je samotný tibble, pomocí
object_size()natrack_metadata_tbl.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Link to the track_metadata table in Spark
track_metadata_tbl <- ___(___, "___")
# See how big the dataset is
___(___)
# See how small the tibble is
___(___)