De data verkleinen met sampling
Als je met een grote gegevensset werkt, hoef je meestal niet altijd met alles tegelijk te werken. Zeker aan het begin van je project, wanneer je nog vrij experimenteert met wat je wilt doen, kun je vaak sneller itereren door met een kleinere subset van de data te werken. sdf_sample() biedt een handige manier om dit te doen. Het krijgt een tibble en de fractie van de rijen die je wilt terugkrijgen. In dit geval wil je samplen zonder terugleggen. Om een willekeurige steekproef van een tiende van je gegevensset te nemen, gebruik je de volgende code.
a_tibble %>%
sdf_sample(fraction = 0.1, replacement = FALSE)
Omdat de resultaten van sampling willekeurig zijn, en je de verkleinde gegevensset waarschijnlijk opnieuw wilt gebruiken, is het gebruikelijk om compute() te gebruiken om de resultaten op te slaan als een andere Spark-dataframe.
a_tibble %>%
sdf_sample(<some args>) %>%
compute("sample_dataset")
Om de resultaten reproduceerbaar te maken, kun je ook een random seed instellen via het argument seed. Dit zorgt ervoor dat je elke keer dat je je code uitvoert dezelfde willekeurige gegevensset krijgt. Het maakt niet uit welk getal je voor de seed gebruikt; kies gewoon je favoriete positieve integer.
Deze oefening maakt deel uit van de cursus
Introductie tot Spark met sparklyr in R
Oefeninstructies
Er is een Spark-verbinding voor je aangemaakt als spark_conn. Een tibble die is gekoppeld aan de trackmetadata die in Spark is opgeslagen, is vooraf gedefinieerd als track_metadata_tbl.
- Gebruik
sdf_sample()om 1% van de trackmetadata te samplen zonder terugleggen.- Geef
20000229door aan het argumentseedom een random seed te zetten.
- Geef
- Bereken het resultaat en sla het op in een tabel met de naam
"sample_track_metadata".
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# track_metadata_tbl has been pre-defined
track_metadata_tbl
track_metadata_tbl %>%
# Sample the data without replacement
___ %>%
# Compute the result
___