📅  最后修改于: 2023-12-03 15:24:04.883000             🧑  作者: Mango
加入多个列通常是数据处理中的常见需求,因为我们需要将多个列的信息合并到一起。在 Pyspark 中,我们可以使用 withColumn()
函数来加入列。下面介绍两种方法实现多列加入。
select()
函数解决多列加入假设我们有一个数据集,包含 name、age 和 gender 三列,现在需要加入一个新列 full_name,它是由 name 和 gender 组成的。可以如下操作:
from pyspark.sql.functions import concat
df = df.select("*", concat(df.name, df.gender).alias("full_name"))
上述代码中,我们使用了 select()
函数将原始数据集中的所有列以及合并后的新列 full_name
全部选出,然后通过 concat()
函数进行字符串拼接,最后使用 alias()
函数来指定新命名列。
withColumn()
函数实现多列加入除了 select()
函数,我们还可以使用 withColumn()
函数实现多列加入。使用 withColumn()
函数,只需传递两个参数:新列的名称和计算新列值的表达式。现在,我们使用 withColumn()
函数将 age 和 gender 两列合并到一起(用 _
符号隔开):
from pyspark.sql.functions import concat
df = df.withColumn("age_gender", concat(df.age, df.gender))
上述代码中,我们在原始数据集中加入了一个新列 age_gender
,以 age 和 gender 两列字符型值合并而成。
返回Markdown格式如下:
# 如何加入 Pyspark 中的多个列?
加入多个列通常是数据处理中的常见需求,因为我们需要将多个列的信息合并到一起。在 Pyspark 中,我们可以使用 `withColumn()` 函数来加入列。下面介绍两种方法实现多列加入。
## 方法一:使用 `select()` 函数解决多列加入
假设我们有一个数据集,包含 name、age 和 gender 三列,现在需要加入一个新列 full_name,它是由 name 和 gender 组成的。可以如下操作:
```python
from pyspark.sql.functions import concat
df = df.select("*", concat(df.name, df.gender).alias("full_name"))
上述代码中,我们使用了 select()
函数将原始数据集中的所有列以及合并后的新列 full_name
全部选出,然后通过 concat()
函数进行字符串拼接,最后使用 alias()
函数来指定新命名列。
withColumn()
函数实现多列加入除了 select()
函数,我们还可以使用 withColumn()
函数实现多列加入。使用 withColumn()
函数,只需传递两个参数:新列的名称和计算新列值的表达式。现在,我们使用 withColumn()
函数将 age 和 gender 两列合并到一起(用 _
符号隔开):
from pyspark.sql.functions import concat
df = df.withColumn("age_gender", concat(df.age, df.gender))