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


Python PySpark DataFrame union方法用法及代碼示例


PySpark DataFrame 的union(~) 方法根據列位置垂直連接兩個DataFrames。

警告

請注意以下事項:

  • 兩個 DataFrames 必須具有相同的列數

  • DataFrames 將根據列位置而不是標簽進行垂直連接。請參閱下麵的示例以進行說明。

參數

1.other | PySpark 數據幀

另一個DataFrame 與之垂直連接。

返回值

PySpark 數據幀 (pyspark.sql.dataframe.DataFrame)。

例子

根據列位置垂直連接 PySpark DataFrame

考慮以下兩個PySpark DataFrame:

df1 = spark.createDataFrame([["Alex", 20], ["Bob", 24], ["Cathy", 22]], ["name", "age"])
df1.show()



+-----+---+
| name|age|
+-----+---+
| Alex| 20|
|  Bob| 24|
|Cathy| 22|
+-----+---+

另一個 DataFrame :

df2 = spark.createDataFrame([["Alex", 25], ["Doge", 30], ["Eric", 50]], ["name", "age"])
df2.show()



+----+---+
|name|age|
+----+---+
|Alex| 25|
|Doge| 30|
|Eric| 50|
+----+---+

連接兩個 DataFrame:

df1.union(df2).show()



+-----+---+
| name|age|
+-----+---+
| Alex| 20|
|  Bob| 24|
|Cathy| 22|
| Alex| 25|
| Doge| 30|
| Eric| 50|
+-----+---+

Union是基於列位置的

考慮以下PySpark DataFrame:

df1 = spark.createDataFrame([["Alex", 20], ["Bob", 24], ["Cathy", 22]], ["name", "age"])
df1.show()



+-----+---+
| name|age|
+-----+---+
| Alex| 20|
|  Bob| 24|
|Cathy| 22|
+-----+---+

另一個 PySpark DataFrame 有一個不同的列,稱為 salary

df2 = spark.createDataFrame([["Alex", 250], ["Doge", 200], ["Eric", 100]], ["name", "salary"])
df2.show()



+----+------+
|name|salary|
+----+------+
|Alex|   250|
|Doge|   200|
|Eric|   100|
+----+------+

使用 union(~) 連接兩個 DataFrames 會產生:

df1.union(df2).show()



+-----+---+
| name|age|
+-----+---+
| Alex| 20|
|  Bob| 24|
|Cathy| 22|
| Alex|250|
| Doge|200|
| Eric|100|
+-----+---+

請注意,即使兩個 DataFrames 具有單獨的列標簽,該方法仍然將它們連接起來。這是因為串聯是基於列位置的,因此標簽在這裏不起作用。您應該警惕這種行為,因為 union(~) 方法可能會產生不正確的 DataFrames(如上麵的方法),但不會引發錯誤!

相關用法


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