开始使用免费开始使用

列选择

Spark 中与 SQL 的 SELECT 对应的方法是 .select()。该方法可以接收多个参数——每个参数对应您要选择的一列。参数既可以是字符串形式的列名(每列一个字符串),也可以是列对象(使用 df.colName 语法)。当传入列对象时,您可以像在 .withColumn() 中一样,对该列执行加减等运算,从而改变其中的数据。

.select().withColumn() 的区别在于:.select() 只返回您指定的列,而 .withColumn() 会在您定义的新列之外返回整个 DataFrame 的所有列。通常在操作一开始就丢弃不需要的列是个好主意,这样在清洗数据时就不会拖着多余的数据。在这种情况下,您应使用 .select(),而不是 .withColumn()

请注意,名为 spark 的 SparkSession 已在您的工作区中,同时还有名为 flights 的 Spark DataFrame。

本练习是课程的一部分

PySpark 基础

查看课程

练习说明

  • 通过将列名以字符串形式传入,从 flights 中选择 "tailnum""origin""dest" 三列。将结果保存为 selected1
  • 使用 df.colName 语法选择 "origin""dest""carrier" 三列,然后用已为您定义的两个过滤条件(filterAfilterB)对结果进行过滤,仅保留从 SEA 到 PDX 的航班。将结果保存为 selected2

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Select the first set of columns
selected1 = flights.select("____", "____", "____")

# Select the second set of columns
temp = flights.select(____.____, ____.____, ____.____)

# Define first filter
filterA = flights.origin == "SEA"

# Define second filter
filterB = flights.dest == "PDX"

# Filter the data, first by filterA then by filterB
selected2 = temp.filter(____).filter(____)
编辑并运行代码