Compartilhar via


ingressar

Une-se a outro DataFrame, usando a expressão de junção 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 junção.
on str, list ou Column, opcional uma cadeia de caracteres para o nome da coluna de junção, uma lista de nomes de coluna, uma expressão de junção (Coluna) ou uma lista de Colunas. Se on for uma cadeia de caracteres ou uma lista de cadeias de caracteres que indicam o nome das colunas de junção, as colunas deverão existir em ambos os lados e isso executará uma junção de equi.
how str, opcional padrão 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, , antie leftantileft_anti.

Devoluções

DataFrame: DataFrame ingressado.

Exemplos

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