Vänsterjoiningar
Förutom att manipulera enskilda dataramen kan du med sparklyr även joina två dataramen. En grundlig genomgång av hur man jointar tabeller med dplyr-syntax finns i kursen Joining Data with dplyr. I resten av det här kapitlet får du se några exempel på hur det görs i Spark.
En vänsterjoining tar alla värden från den första tabellen och söker efter matchningar i den andra. Om en matchning hittas läggs data från den andra tabellen till; annars fylls kolumnerna med saknade värden. Principen visas i diagrammet nedan.

Vänsterjoiningar är en typ av muterande joining, eftersom de helt enkelt lägger till kolumner till den första tabellen. För att utföra en vänsterjoining med sparklyr anropar du left_join() och skickar med två tibbles samt en teckensträng med de kolumner som ska jointas på.
left_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))
När man beskriver den här joiningen i ord vänds tabellnamnen. Denna joining beskrivs som "another_tibble joinas till a_tibble med vänsterjoining".
I den här övningen introduceras ytterligare ett Spark-DataFrame med termer som beskriver varje artist. Dessa sträcker sig från ganska generella termer som "pop" till mer nischade genrer som "swiss hip hop" och "mathgrindcore".
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. Tibbles kopplade till spårmetadata och artisttermer lagrade i Spark har fördefinieras som track_metadata_tbl respektive artist_terms_tbl.
- Använd en vänsterjoining för att joina artisttermerna till spårmetadatan via kolumnen
artist_id.- Tabellen som jointas till,
track_metadata_tbl, kommer först. - Tabellen som joinas in,
artist_terms_tbl, kommer sedan. - Tilldela resultatet till
joined.
- Tabellen som jointas till,
- Använd
sdf_dim()för att ta reda på hur många rader och kolumner den joinade tabellen innehåller.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# track_metadata_tbl and artist_terms_tbl have been pre-defined
track_metadata_tbl
artist_terms_tbl
# Left join artist terms to track metadata by artist_id
joined <- ___(___, ___, by = ___)
# How many rows and columns are in the joined table?
___