PySpark SQL: 删除一列或多列

2021-11-05 09:26:58.0

1、构造一个DataFrame

# List
data = [{"Category": 'Category A', "ID": 1, "Value": 12.40},
        {"Category": 'Category B', "ID": 2, "Value": 30.10},
        {"Category": 'Category C', "ID": 3, "Value": 100.01}
       ]

# 创建DataFrame
df = spark.createDataFrame(data)
df.show()
df.printSchema()

执行以上代码,输出结果如下:

+----------+---+------+
|  Category| ID| Value|
+----------+---+------+
|Category A|  1|  12.4|
|Category B|  2|  30.1|
|Category C|  3|100.01|
+----------+---+------+

root
 |-- Category: string (nullable = true)
 |-- ID: long (nullable = true)
 |-- Value: double (nullable = true)

2、删除或移除一列

我们可以使用drop函数来删除或移除一列。

df1 = df.drop('Category')
df1.show()

执行以上代码,输出结果如下:

+---+------+
| ID| Value|
+---+------+
|  1|  12.4|
|  2|  30.1|
|  3|100.01|
+---+------+

3、删除多列

可以一次性删除多列。

df2 = df.drop('Category', 'ID')
df2.show()

columns_to_drop = ['Category', 'ID']
df3 = df.drop(*columns_to_drop)
df3.show()

执行以上代码,输出结果如下:

+------+
| Value|
+------+
|  12.4|
|  30.1|
|100.01|
+------+

+------+
| Value|
+------+
|  12.4|
|  30.1|
|100.01|
+------+

《PySpark原理深入与编程实战》