Kopírování dat do Sparku
Než začneš ve Sparku pracovat naostro, musíš do něj nejdřív dostat data. sparklyr nabízí funkce jako spark_read_csv(), která načte CSV soubor přímo do Sparku. Obecně je ale užitečné umět přenést data z R do Sparku – k tomu slouží funkce copy_to() z balíčku dplyr. Pozor: kopírování dat je ze své podstaty pomalý proces. Velká část strategie optimalizace výkonu při práci s velkými datovými sadami spočívá právě v tom, jak se takovému kopírování co nejvíc vyhnout.
copy_to() přijímá dva argumenty: Spark připojení (dest) a datový rámec (df), který chceš do Sparku zkopírovat.
Jakmile data do Sparku zkopíruješ, možná si budeš chtít ověřit, že to skutečně proběhlo. Seznam všech datových rámců uložených ve Sparku zobrazíš pomocí src_tbls(), která přijímá jediný argument – Spark připojení (x).
V průběhu kurzu budeš pracovat s metadaty skladeb z Million Song Dataset. Spark si poradí s datovými sadami daleko přesahujícími milion řádků, ale aby bylo vše přehledné a rychlé, budeme používat podmnožinu tisíce skladeb. Ještě k terminologii: track (skladba) odpovídá jednomu řádku v datové sadě. V naší tisíciskladbové verzi je to totéž co song (píseň), i když kompletní milionová datová sada obsahovala některé duplicitní záznamy.
Toto cvičení je součástí kurzu
Úvod do Sparku se sparklyr v R
Pokyny k cvičení
track_metadata, obsahující název skladby, jméno interpreta a další metadata pro 1 000 skladeb, je v tvém pracovním prostředí předem připraven.
- Pomocí
str()prozkoumej datovou sadutrack_metadata. - Připoj se k lokálnímu Spark clusteru a ulož připojení do proměnné
spark_conn. - Zkopíruj
track_metadatado Spark clusteru pomocícopy_to(). - Zjisti, které datové rámce jsou ve Sparku k dispozici, pomocí
src_tbls(). - Odpoč se od Sparku.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Load dplyr
___
# Explore track_metadata structure
___
# Connect to your Spark cluster
spark_conn <- spark_connect("___")
# Copy track_metadata to Spark
track_metadata_tbl <- ___(___, ___, overwrite = TRUE)
# List the data frames available in Spark
___(___)
# Disconnect from Spark
spark_disconnect(___)