📅  最后修改于: 2023-12-03 14:52:29.709000             🧑  作者: Mango
在 PySpark 数据框中添加多列可以使用 withColumn()
方法。该方法可以接受一个表达式并返回一个新的数据框,其中新增加的列就是这个表达式的结果。可以将多次调用 withColumn()
方法来新增加多列。
下面是一个示例,假设我们有一个如下的数据框:
from pyspark.sql.functions import col
df = spark.createDataFrame([(1, "foo"), (2, "bar"), (3, "baz")], ["id", "name"])
df.show()
输出结果:
+---+----+
| id|name|
+---+----+
| 1| foo|
| 2| bar|
| 3| baz|
+---+----+
现在我们想要新增加两列 new_col1
和 new_col2
,可以使用下面的代码:
df_new = df.withColumn("new_col1", col("id") * 2).withColumn("new_col2", col("id") + 1)
df_new.show()
输出结果:
+---+----+--------+--------+
| id|name|new_col1|new_col2|
+---+----+--------+--------+
| 1| foo| 2| 2|
| 2| bar| 4| 3|
| 3| baz| 6| 4|
+---+----+--------+--------+
可以看到,我们通过连续调用 withColumn()
方法成功地新增加了两列 new_col1
和 new_col2
。
另外,如果你想要新增加的列是一个常量,可以使用 lit()
函数来创建一个常量表达式。例如:
from pyspark.sql.functions import lit
df_new = df.withColumn("new_col3", lit("hello")).withColumn("new_col4", lit(123))
df_new.show()
输出结果:
+---+----+--------+--------+--------+--------+
| id|name|new_col1|new_col2|new_col3|new_col4|
+---+----+--------+--------+--------+--------+
| 1| foo| 2| 2| hello| 123|
| 2| bar| 4| 3| hello| 123|
| 3| baz| 6| 4| hello| 123|
+---+----+--------+--------+--------+--------+
上述代码中,我们分别使用了 lit("hello")
和 lit(123)
来创建了常量表达式,并将它们作为新的列添加到数据框中。
以上就是在 PySpark 数据框中添加多列的方法介绍。