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