НачатьНачать бесплатно

Выборка столбцов

Аналогом 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(____)
Редактировать и запускать код