Выборка столбцов
Аналогом SQL-оператора SELECT в Spark служит метод .select(). Он принимает несколько аргументов — по одному для каждого нужного столбца. Аргументами могут быть как имя столбца в виде строки, так и объект столбца (с использованием синтаксиса df.colName). Передавая объект столбца, вы можете выполнять над ним операции — например, сложение или вычитание — чтобы изменить содержащиеся в нём данные, как это делается внутри .withColumn().
Основное различие между .select() и .withColumn() состоит в следующем: .select() возвращает только указанные вами столбцы, тогда как .withColumn() возвращает все столбцы DataFrame вместе с вновь определённым. Как правило, удобнее всего удалять ненужные столбцы в самом начале операции, чтобы не перетаскивать лишние данные в процессе обработки. В таких случаях используйте .select(), а не .withColumn().
Напомним, что в вашем рабочем пространстве уже доступны сессия SparkSession с именем spark и Spark DataFrame flights.
Это упражнение является частью курса
Основы PySpark
Инструкции к упражнению
- Выберите столбцы
"tailnum","origin"и"dest"изflights, передав их имена в виде строк. Сохраните результат в переменнуюselected1. - Выберите столбцы
"origin","dest"и"carrier"с помощью синтаксисаdf.colName, затем отфильтруйте результат, применив оба уже определённых фильтра (filterAиfilterB), чтобы оставить только рейсы из 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(____)