PySpark DataFrame 的 unionByName(~) 方法通過對齊列標簽來垂直連接 PySpark DataFrame。
參數
1. other | PySpark DataFrame
另一個要連接的DataFrame。
2. allowMissingColumns | boolean | optional
- 
如果是 True,那麽如果兩個DataFrames的列標簽不對齊,則不會拋出錯誤。如果出現錯位,則將設置null值。
- 
如果是 False,那麽如果兩個DataFrames的列標簽不對齊,將會拋出錯誤。
默認情況下,allowMissingColumns=False 。
返回值
一個新的PySpark DataFrame。
例子
通過對齊列垂直連接 PySpark DataFrame
考慮以下PySpark DataFrame:
df1 = spark.createDataFrame([[1, 2, 3]], ["A", "B", "C"])
df1.show()
+---+---+---+
|  A|  B|  C|
+---+---+---+
|  1|  2|  3|
+---+---+---+這是另一個PySpark DataFrame:
df2 = spark.createDataFrame([[4, 5, 6], [7, 8, 9]], ["A", "B", "C"])
df2.show()
+---+---+---+
|  A|  B|  C|
+---+---+---+
|  4|  5|  6|
|  7|  8|  9|
+---+---+---+要通過對齊列來垂直連接這兩個DataFrames:
df1.unionByName(df2).show()
+---+---+---+
|  A|  B|  C|
+---+---+---+
|  1|  2|  3|
|  4|  5|  6|
|  7|  8|  9|
+---+---+---+處理列標簽不匹配的情況
默認情況下, allowMissingColumns=False ,這意味著如果兩個 DataFrames 沒有完全匹配的列標簽,則會拋出錯誤。
例如,考慮以下PySpark DataFrame:
df1 = spark.createDataFrame([[1, 2, 3]], ["A", "B", "C"])
df1.show()
+---+---+---+
|  A|  B|  C|
+---+---+---+
|  1|  2|  3|
+---+---+---+這是其他 PySpark DataFrame,其列標簽略有不同:
df2 = spark.createDataFrame([[4, 5, 6], [7, 8, 9]], ["B", "C", "D"])
df2.show()
+---+---+---+
|  B|  C|  D|
+---+---+---+
|  4|  5|  6|
|  7|  8|  9|
+---+---+---+由於列標簽不匹配,調用 unionByName(~) 將導致錯誤:
df1.unionByName(df2).show()   # allowMissingColumns=False
AnalysisException: Cannot resolve column name "A" among (B, C, D)要允許未對齊的列,請設置 allowMissingColumns=True :
df1.unionByName(df2, allowMissingColumns=True).show()
+----+---+---+----+
|   A|  B|  C|   D|
+----+---+---+----+
|   1|  2|  3|null|
|null|  4|  5|   6|
|null|  7|  8|   9|
+----+---+---+----+請注意我們如何為未對齊的列獲取 null 值。
相關用法
- Python PySpark DataFrame union方法用法及代碼示例
- Python Pandas DataFrame unstack方法用法及代碼示例
- Python Pandas DataFrame update方法用法及代碼示例
- Python Pandas DataFrame empty屬性用法及代碼示例
- Python Pandas DataFrame pop方法用法及代碼示例
- Python Pandas DataFrame nsmallest方法用法及代碼示例
- Python Pandas DataFrame sample方法用法及代碼示例
- Python Pandas DataFrame items方法用法及代碼示例
- Python Pandas DataFrame max方法用法及代碼示例
- Python Pandas DataFrame swaplevel方法用法及代碼示例
- Python Pandas DataFrame agg方法用法及代碼示例
- Python Pandas DataFrame copy方法用法及代碼示例
- Python Pandas DataFrame pow方法用法及代碼示例
- Python Pandas DataFrame insert方法用法及代碼示例
- Python Pandas DataFrame lt方法用法及代碼示例
- Python Pandas DataFrame all方法用法及代碼示例
- Python Pandas DataFrame mean方法用法及代碼示例
- Python PySpark DataFrame filter方法用法及代碼示例
- Python Pandas DataFrame tz_convert方法用法及代碼示例
- Python Pandas DataFrame isin方法用法及代碼示例
- Python PySpark DataFrame collect方法用法及代碼示例
- Python PySpark DataFrame intersect方法用法及代碼示例
- Python PySpark DataFrame dtypes屬性用法及代碼示例
- Python Pandas DataFrame rank方法用法及代碼示例
- Python Pandas DataFrame tail方法用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 PySpark DataFrame | unionByName method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
