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