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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。