Freigeben über


beitreten

Verknüpft mit einem anderen DataFrame mithilfe des angegebenen Verknüpfungsausdrucks.

Syntax

join(other: "DataFrame", on: Optional[Union[str, List[str], Column, List[Column]]] = None, how: Optional[str] = None)

Parameter

Parameter Typ Beschreibung
other DataFrame Rechte Seite der Verknüpfung.
on str, list or Column, optional eine Zeichenfolge für den Namen der Verknüpfungsspalte, eine Liste von Spaltennamen, einen Verknüpfungsausdruck (Spalte) oder eine Liste von Spalten. Wenn on es sich um eine Zeichenfolge oder eine Liste von Zeichenfolgen handelt, die den Namen der Verknüpfungsspalten(n) angeben, muss die Spalte(n) auf beiden Seiten vorhanden sein, und dies führt eine gleichrangige Verknüpfung aus.
how str, optional default inner. Muss eine von: inner, cross, , outerfull, fullouter, , full_outer, , left, , leftouterleft_outer, right, rightouter, , right_outer, semileftsemileft_semiantiund . leftantileft_anti

Rückkehr

DataFrame: Verknüpftes DataFrame.

Beispiele

import pyspark.sql.functions as sf
from pyspark.sql import Row
df = spark.createDataFrame([Row(name="Alice", age=2), Row(name="Bob", age=5)])
df2 = spark.createDataFrame([Row(name="Tom", height=80), Row(name="Bob", height=85)])

df.join(df2, "name").show()
# +----+---+------+
# |name|age|height|
# +----+---+------+
# | Bob|  5|    85|
# +----+---+------+

joined = df.join(df2, df.name == df2.name, "outer").sort(sf.desc(df.name))
joined.show()
# +-----+----+----+------+
# | name| age|name|height|
# +-----+----+----+------+
# |  Bob|   5| Bob|    85|
# |Alice|   2|NULL|  NULL|
# | NULL|NULL| Tom|    80|
# +-----+----+----+------+

df.alias("a").join(
    df.alias("b"), sf.col("a.name") == sf.col("b.name"), "outer"
).sort(sf.desc("a.name")).select("a.name", "b.age").show()
# +-----+---+
# | name|age|
# +-----+---+
# |  Bob|  5|
# |Alice|  2|
# +-----+---+