当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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