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


Python PySpark DataFrame withColumn方法用法及代码示例


PySpark DataFrame 的 withColumn(~) 方法可用于:

  • 添加新列

  • 更新现有列

参数

1. colName | string

新列的标签。如果 colName 已存在,则提供的 col 将更新现有列。如果colName不存在,则col将是一个新列。

2. col | Column

新专栏。

返回值

PySpark 数据帧 (pyspark.sql.dataframe.DataFrame)。

例子

考虑以下PySpark DataFrame:

df = spark.createDataFrame([["Alex", 25], ["Bob", 30], ["Cathy", 50]], ["name", "age"])
df.show()



+-----+---+
| name|age|
+-----+---+
| Alex| 25|
|  Bob| 30|
|Cathy| 50|
+-----+---+

根据PySpark中的原始列值更新列值

要更新现有列,请提供其列标签作为第一个参数:

df.withColumn("age", 2 * df.age).show()



+-----+---+
| name|age|
+-----+---+
| Alex| 50|
|  Bob| 60|
|Cathy|100|
+-----+---+

请注意,您必须传入 Column 对象作为第二个参数,因此您不能简单地使用列表作为新列值。

向 PySpark DataFrame 添加新列

要添加带有 0 的新列 AGEE

import pyspark.sql.functions as F
df.withColumn("AGEE", F.lit(0)).show()



+-----+---+----+
| name|age|AGEE|
+-----+---+----+
| Alex| 25|   0|
|  Bob| 30|   0|
|Cathy| 50|   0|
+-----+---+----+

这里, F.lit(0) 返回一个包含0Column 对象。请注意,由于列标签不区分大小写,因此如果您传入 "AGE" 作为第一个参数,最终会覆盖 age 列。

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 PySpark DataFrame | withColumn method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。