當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python pyspark DataFrame.join用法及代碼示例

本文簡要介紹 pyspark.sql.DataFrame.join 的用法。

用法:

DataFrame.join(other, on=None, how=None)

使用給定的連接表達式與另一個 DataFrame 連接。

版本 1.3.0 中的新函數。

參數

otherDataFrame

連接的右側

onstr,列表或 Column ,可選

連接列名的字符串、列名列表、連接表達式(列)或列列表。如果 on 是一個字符串或一個字符串列表,表示連接列的名稱,則列必須存在於兩邊,這將執行 equi-join。

howstr,可選

默認 inner 。必須是以下之一: inner , cross , outer , full , fullouter , full_outer , left , leftouter , left_outer , right , rightouter , right_outer , semi , leftsemi , left_semi , anti , leftantileft_anti

例子

以下在 df1df2 之間執行完全外連接。

>>> from pyspark.sql.functions import desc
>>> df.join(df2, df.name == df2.name, 'outer').select(df.name, df2.height)                 .sort(desc("name")).collect()
[Row(name='Bob', height=85), Row(name='Alice', height=None), Row(name=None, height=80)]
>>> df.join(df2, 'name', 'outer').select('name', 'height').sort(desc("name")).collect()
[Row(name='Tom', height=80), Row(name='Bob', height=85), Row(name='Alice', height=None)]
>>> cond = [df.name == df3.name, df.age == df3.age]
>>> df.join(df3, cond, 'outer').select(df.name, df3.age).collect()
[Row(name='Alice', age=2), Row(name='Bob', age=5)]
>>> df.join(df2, 'name').select(df.name, df2.height).collect()
[Row(name='Bob', height=85)]
>>> df.join(df4, ['name', 'age']).select(df.name, df.age).collect()
[Row(name='Bob', age=5)]

相關用法


注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 pyspark.sql.DataFrame.join。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。