Aan de slagBegin gratis

Common people

De functie distinct() liet je de unieke waarden zien. Het is ook handig om te weten hoeveel je van elke waarde hebt. De base-R-functie hiervoor is table(); die wordt niet ondersteund in sparklyr, omdat dit niet past binnen de tidyverse-filosofie om alles in tibbles te houden. In plaats daarvan gebruik je count(). Geef hiervoor de ongemarkeerde (unquoted) kolomnamen door. Om bijvoorbeeld de aantallen van verschillende combinaties van de kolommen x, y en z te vinden, typ je het volgende.

a_tibble %>%
  count(x, y, z)

Het resultaat is hetzelfde als

a_tibble %>%
  distinct(x, y, z)

… behalve dat je een extra kolom n krijgt met de aantallen.

Een heel fijne toepassing van count() is om de meest voorkomende waarden van iets te krijgen. Hiervoor roep je count() aan met het argument sort = TRUE, waarmee de rijen worden gesorteerd op aflopende waarden van de kolom n, en gebruik je daarna slice_max() om de resultaten te beperken tot de bovenste zoveel waarden. (slice_max() lijkt op de base-R-functie head(), maar werkt met externe gegevenssets zoals die in Spark.) Om bijvoorbeeld de 20 meest voorkomende combinaties van de kolommen x, y en z te krijgen, gebruik je het volgende.

a_tibble %>%
  count(x, y, z, sort = TRUE) %>%
  slice_max(20)

Deze oefening maakt deel uit van de cursus

Introductie tot Spark met sparklyr in R

Bekijk cursus

Oefeninstructies

Er is een Spark-verbinding voor je gemaakt als spark_conn. Een tibble die is gekoppeld aan de trackmetadata die in Spark is opgeslagen, is vooraf gedefinieerd als track_metadata_tbl.

  • Tel de waarden in de kolom artist_name uit track_metadata_tbl.
    • Geef sort = TRUE door om de rijen op aflopende populariteit te sorteren.
  • Beperk de resultaten tot de bovenste 20 met slice_max().

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 %>%
  # Count the artist_name values
  ___ %>%
  # Restrict to top 20
  ___
Code bewerken en uitvoeren