指定された結合式を使用して、別の DataFrame と結合します。
構文
join(other: "DataFrame", on: Optional[Union[str, List[str], Column, List[Column]]] = None, how: Optional[str] = None)
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
other |
DataFrame | 結合の右側。 |
on |
str、list、または Column(省略可能) | 結合列名の文字列、列名のリスト、結合式 (Column)、または列のリスト。
onが結合列の名前を示す文字列または文字列のリストである場合、列は両側に存在する必要があり、これにより等結合が実行されます。 |
how |
str、省略可能 | 既定の inner。
inner、cross、outer、full、fullouter、full_outer、leftleftouter、left_outer、right、rightouter、right_outer、semi、leftsemi、left_semi、anti、leftanti、left_antiのいずれかである必要があります。 |
返品
DataFrame: 結合された DataFrame。
例示
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|
# +-----+---+