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


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


PySpark DataFrame 的 drop(~) 方法返回一个新的 DataFrame,其中删除了指定的列。

注意

尝试删除不存在的列不会引发错误 - 将返回原始的DataFrame。

参数

1.*cols | stringColumn

要删除的列。

返回值

一个新的 PySpark 数据帧。

例子

考虑以下PySpark DataFrame:

df = spark.createDataFrame([["Alex", 25, True], ["Bob", 30, False]], ["name", "age", "is_married"])
df.show()



+----+---+----------+
|name|age|is_married|
+----+---+----------+
|Alex| 25|      true|
| Bob| 30|     false|
+----+---+----------+

删除 PySpark DataFrame 的单列

要删除 name 列:

df.drop("name").show()



+---+----------+
|age|is_married|
+---+----------+
| 25|      true|
| 30|     false|
+---+----------+

请注意,原始df 保持不变。

我们还可以使用 sql.functions 将该列作为 Column 对象提供:

import pyspark.sql.functions as F
df.drop(F.col("name")).show()



+---+----------+
|age|is_married|
+---+----------+
| 25|      true|
| 30|     false|
+---+----------+

删除 PySpark DataFrame 的多列

要删除列 nameage

df.drop("name", "age").show()



+----------+
|is_married|
+----------+
|      true|
|     false|
+----------+
警告

我们无法通过提供多个 Column 对象来删除列:

import pyspark.sql.functions as F
df.drop(F.col("name"), F.col("age")).show()



TypeError: each col in the param list should be a string

删除给定列标签列表的列

要删除给定列标签列表的列:

cols = ["name", "age"]
df.drop(*cols).show()



+----------+
|is_married|
+----------+
|      true|
|     false|
+----------+

这里,*cols 将列表转换为位置参数。

相关用法


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