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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。