LoslegenKostenlos loslegen

Semi-Joins

Semi-Joins sind das Gegenteil von Anti-Joins: sozusagen ein Anti-Anti-Join.

Ein Semi-Join gibt die Zeilen der ersten Tabelle zurück, für die es in der zweiten Tabelle eine Übereinstimmung gibt. Das Prinzip zeigt diese Grafik.

A semi join, explained using table of colors.

Die Syntax ist dieselbe wie bei anderen Join-Typen; ersetze die Join-Funktion einfach durch semi_join()

semi_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))

Dir ist vielleicht aufgefallen, dass die Ergebnisse eines Semi-Joins plus die Ergebnisse eines Anti-Joins die ursprüngliche Tabelle ergeben. Unabhängig vom Tabelleninhalt oder der Art des Joins gilt also: semi_join(A, B) plus anti_join(A, B) ergibt A (eventuell in anderer Zeilenreihenfolge).

Diese Übung ist Teil des Kurses

Einführung in Spark mit sparklyr in R

Kurs anzeigen

Anleitung zur Übung

Eine Spark-Verbindung wurde für dich als spark_conn erstellt. Tibbles, die in Spark gespeicherte Track-Metadaten bzw. Artist Terms darstellen, sind bereits als track_metadata_tbl bzw. artist_terms_tbl definiert.

  • Verwende einen Semi-Join, um die Artist Terms über die Spalte artist_id mit den Track-Metadaten zu verknüpfen. Weise das Ergebnis joined zu.
  • Bestimme mit sdf_dim(), wie viele Zeilen und Spalten die verknüpfte Tabelle hat.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# track_metadata_tbl and artist_terms_tbl have been pre-defined
track_metadata_tbl
artist_terms_tbl

# Semi join artist terms to track metadata by artist_id
joined <- ___

# How many rows and columns are in the joined table?
___
Code bearbeiten und ausführen