Pular para o conteúdo principal

join

Junte-se a outro DataFrame, usando a expressão join fornecida.

Sintaxe

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

Parâmetros

Parâmetro

Tipo

Descrição

other

DataFrame

Lado direito da join.

on

str, lista ou coluna, opcional

uma string para o nome da coluna join , uma lista de nomes de colunas, uma expressão join (Coluna) ou uma lista de colunas. Se on for uma string ou uma lista de strings indicando o nome da(s) coluna(s) join , a(s) coluna(s) deve(m) existir em ambos os lados, e isso realiza umajoin equi.

how

str, opcional

default inner. Deve ser um dos seguintes: inner, cross, outer, full, fullouter, full_outer, left, leftouter, left_outer, right, rightouter, right_outer, semi, leftsemi, left_semi, anti, leftanti e left_anti.

Devoluções

DataFrame: DataFrame unido.

Exemplos

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