Vanliga förekomster
Funktionen distinct() visade dig de unika värdena. Det kan också vara användbart att veta hur många av varje värde du har. Bas-R-funktionen för detta är table(), men den stöds inte i sparklyr eftersom den inte följer tidyverse-filosofin om att hålla allt i tibbles. Istället måste du använda count(). Skicka in kolumnnamnen utan citattecken som argument. Till exempel, för att räkna distinkta kombinationer av kolumnerna x, y och z, skriver du följande.
a_tibble %>%
count(x, y, z)
Resultatet är detsamma som
a_tibble %>%
distinct(x, y, z)
… förutom att du får en extra kolumn, n, som innehåller antalet förekomster.
Ett praktiskt användningsområde för count() är att hitta de vanligaste värdena. Du anropar count() med argumentet sort = TRUE, vilket sorterar raderna i fallande ordning efter kolumnen n, och använder sedan slice_max() för att begränsa resultatet till de översta värdena. (slice_max() liknar bas-R:s head(), men fungerar med fjärrdatamängder som de i Spark.) För att till exempel hämta de 20 vanligaste kombinationerna av kolumnerna x, y och z använder du följande.
a_tibble %>%
count(x, y, z, sort = TRUE) %>%
slice_max(20)
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ördefinierat som track_metadata_tbl.
- Räkna värdena i kolumnen
artist_namefråntrack_metadata_tbl.- Skicka
sort = TRUEför att sortera raderna efter fallande popularitet.
- Skicka
- Begränsa resultatet till de 20 översta med hjälp av
slice_max().
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 %>%
# Count the artist_name values
___ %>%
# Restrict to top 20
___