Minska datamängden genom sampling
När du arbetar med en stor datamängd behöver du sällan använda alla data hela tiden. Särskilt i början av ett projekt, när du experimenterar fritt med olika idéer, kan du ofta iterera snabbare genom att arbeta med en mindre delmängd av data. sdf_sample() är ett smidigt sätt att göra detta. Funktionen tar en tibble och den andel av raderna som ska returneras. I det här fallet vill du ta ett urval utan återläggning. För att få ett slumpmässigt urval på en tiondel av din datamängd använder du följande kod.
a_tibble %>%
sdf_sample(fraction = 0.1, replacement = FALSE)
Eftersom urvalsresultaten är slumpmässiga, och du troligtvis vill återanvända den reducerade datamängden, är det vanligt att använda compute() för att lagra resultaten som en ny Spark-dataram.
a_tibble %>%
sdf_sample(<some args>) %>%
compute("sample_dataset")
För att göra resultaten reproducerbara kan du också ange ett slumptal som startvärde via argumentet seed. Det innebär att du får samma slumpmässiga datamängd varje gång du kör koden. Vilket tal du väljer spelar ingen roll – välj ditt favoritpositive heltal.
Den här övningen är en del av kursen
Introduktion till Spark med sparklyr i R
Övningsinstruktioner
En Spark-anslutning har skapats åt dig som spark_conn. En tibble kopplad till spårmetadata lagrad i Spark har fördefinieras som track_metadata_tbl.
- Använd
sdf_sample()för att ta ett urval på 1 % av spårmetadata utan återläggning.- Skicka
20000229till argumentetseedför att ange ett slumpmässigt startvärde.
- Skicka
- Beräkna resultatet och lagra det i en tabell med namnet
"sample_track_metadata".
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# track_metadata_tbl has been pre-defined
track_metadata_tbl
track_metadata_tbl %>%
# Sample the data without replacement
___ %>%
# Compute the result
___