📜  从 PySpark DataFrame 中删除一列或多列(1)

📅  最后修改于: 2023-12-03 15:21:53.527000             🧑  作者: Mango

从 PySpark DataFrame 中删除一列或多列

在 PySpark DataFrame 中删除一列或多列通常是数据预处理的常见任务。本文将向程序员介绍如何从 PySpark DataFrame 中删除列。

删除单列

我们可以使用 DataFrame.drop() 方法删除一个列。下面的示例删除名为 age 的列:

from pyspark.sql.functions import col

# 创建 DataFrame
data = [("Alice", 25), ("Bob", 30), ("Charlie", 35)]
df = spark.createDataFrame(data, ["name", "age"])

# 删除列
df = df.drop("age")
df.show()

以上代码将输出如下结果:

+-------+
|   name|
+-------+
|  Alice|
|    Bob|
|Charlie|
+-------+
删除多列

我们可以在 drop() 方法中传递多个列名。下面的示例删除名为 agename 的列:

from pyspark.sql.functions import col

# 创建 DataFrame
data = [("Alice", 25), ("Bob", 30), ("Charlie", 35)]
df = spark.createDataFrame(data, ["name", "age"])

# 删除列
df = df.drop("age", "name")
df.show()

以上代码将输出如下结果:

++
||
++
++
++
重命名列

在某些情况下,我们可能想要将一列重命名为另一个名称。我们可以使用 DataFrame.withColumnRenamed() 方法来实现这一点。下面的示例将名为 age 的列重命名为 years

from pyspark.sql.functions import col

# 创建 DataFrame
data = [("Alice", 25), ("Bob", 30), ("Charlie", 35)]
df = spark.createDataFrame(data, ["name", "age"])

# 重命名列
df = df.withColumnRenamed("age", "years")
df.show()

以上代码将输出如下结果:

+-------+-----+
|   name|years|
+-------+-----+
|  Alice|   25|
|    Bob|   30|
|Charlie|   35|
+-------+-----+
总结

本文向程序员介绍了如何从 PySpark DataFrame 中删除列。我们可以使用 DataFrame.drop() 方法删除列,使用 DataFrame.withColumnRenamed() 方法重命名列。