joindre

Jointure à un autre DataFrame à l’aide de l’expression de jointure donnée.

Syntaxe

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

Paramètres

Paramètre Type Description
other DataFrame Côté droit de la jointure.
on str, liste ou colonne, facultatif une chaîne pour le nom de colonne de jointure, une liste de noms de colonnes, une expression de jointure (Colonne) ou une liste de colonnes. S’il on s’agit d’une chaîne ou d’une liste de chaînes indiquant le nom des colonnes de jointure, la ou les colonnes doivent exister sur les deux côtés, et cela effectue une équi-jointure.
how str, facultatif par défaut inner. Doit être l’un des suivants : inner, , , crossouterfullfullouterfull_outerleftleftouterleft_outerrightrightouterright_outersemileftsemileft_semiantileftanti et .left_anti

Retours

DataFrame: DataFrame joint.

Exemples

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|
# +-----+---+