📌  相关文章
📜  如何在 PySpark 数据框中添加多列?(1)

📅  最后修改于: 2023-12-03 14:52:29.709000             🧑  作者: Mango

如何在 PySpark 数据框中添加多列?

在 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_col1new_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_col1new_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 数据框中添加多列的方法介绍。