Aller au contenu principal

joindre

Joint à un autre DataFrame, en utilisant l'expression de jointure donnée.

Syntaxe​

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

parameter​

parameter

Type

Description

other

DataFrame

Côté droit de la jointure.

on

str, liste ou colonne, facultatif

une chaîne pour le nom de colonne d'association, une liste de noms de colonnes, une expression d'association (Colonne) ou une liste de Colonnes. Si on est une chaîne de caractères ou une liste de chaînes de caractères indiquant le nom de la ou des colonnes de jointure, la ou les colonnes doivent exister des deux côtés, et ceci effectue une équijointure.

how

str, facultatif

default inner. Doit être l'un des éléments suivants : inner, cross, outer, full, fullouter, full_outer, left, leftouter, left_outer, right, rightouter, right_outer, semi, leftsemi, left_semi, anti, leftanti et left_anti.

parameter

Type

Description

other

DataFrame

Côté droit de la jointure.

on

str, liste ou colonne, facultatif

une chaîne pour le nom de colonne d'association, une liste de noms de colonnes, une expression d'association (Colonne) ou une liste de Colonnes. Si on est une chaîne de caractères ou une liste de chaînes de caractères indiquant le nom de la ou des colonnes de jointure, la ou les colonnes doivent exister des deux côtés, et ceci effectue une équijointure.

how

str, facultatif

default inner. Doit être l'un des éléments suivants : inner, cross, outer, full, fullouter, full_outer, left, leftouter, left_outer, right, rightouter, right_outer, semi, leftsemi, left_semi, anti, leftanti et left_anti.

Renvoie​

DataFrame: DataFrame joint.

Exemples​

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