Začněte nyníZačněte zdarma

Práce se soubory parquet

CSV soubory jsou skvělé pro ukládání obdélníkových datových objektů (jako jsou R data.frames a Spark DataFrames) na disk. Jejich nevýhoda spočívá v tom, že jsou velmi pomalé při čtení i zápisu, což je pro velké datasety prakticky nepoužitelné. Soubory ve formátu parquet nabízejí výkonnější alternativu. Kromě použití ve Sparku je lze využít i s dalšími nástroji ekosystému Hadoop, jako jsou Shark, Impala, Hive nebo Pig.

Technicky vzato je pojem parquet soubor trochu nepřesný. Při ukládání dat ve formátu parquet ve skutečnosti vznikne celý adresář plný souborů. Data jsou rozdělena napříč více .parquet soubory, což usnadňuje jejich uložení na více strojích zároveň, a jsou tam i metadata popisující obsah každého sloupce.

sparklyr umožňuje importovat parquet soubory pomocí spark_read_parquet(). Tato funkce přijímá Spark připojení, řetězec s názvem vytvářeného Spark DataFrame a cestu k adresáři s parquet soubory. Tato funkce importuje data přímo do Sparku, což bývá rychlejší než nejprve načíst data do R a pak použít copy_to() k jejich přenesení do Sparku.

spark_read_parquet(sc, "a_dataset", "path/to/parquet/dir")

Toto cvičení je součástí kurzu

Úvod do Sparku se sparklyr v R

Zobrazit kurz

Pokyny k cvičení

Spark připojení je pro tebe připraveno jako spark_conn. Řetězec s cestou k adresáři parquet (v souborovém systému, kde běží R) je připraven jako parquet_dir.

  • Pomocí dir() vypiš absolutní cesty k souborům v adresáři parquet a výsledek ulož do proměnné filenames.
    • Prvním argumentem by měl být adresář, jehož soubory vypisuješ — tedy parquet_dir.
    • Pro získání absolutních (nikoli relativních) cest předej také full.names = TRUE.
  • Vytvoř data_frame se dvěma sloupci.
    • filename by měl obsahovat právě získané názvy souborů bez části s adresářem. Vytvoř ho předáním názvů souborů do basename().
    • size_bytes by měl obsahovat velikosti těchto souborů. Vytvoř ho předáním názvů souborů do file.size().
  • Pomocí spark_read_parquet() importuj data o timbru do Sparku a výsledek ulož do timbre_tbl.
    • Prvním argumentem by mělo být Spark připojení.
    • Druhým argumentem by měl být "timbre".
    • Třetím argumentem by měl být parquet_dir.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# parquet_dir has been pre-defined
parquet_dir

# List the files in the parquet dir
filenames <- ___

# Show the filenames and their sizes
data_frame(
  filename = ___,
  size_bytes = ___
)

# Import the data into Spark
timbre_tbl <- ___
Upravit a spustit kód