Вибірка стовпців
У Spark варіантом SQL-оператора SELECT є метод .select(). Цей метод приймає кілька аргументів — по одному для кожного стовпця, який ви хочете вибрати. Аргументами можуть бути або назви стовпців як рядки (по одному на стовпець), або об'єкти стовпців (із синтаксисом df.colName). Якщо ви передаєте об'єкт стовпця, можна виконувати операції на кшталт додавання чи віднімання над цим стовпцем, змінюючи дані в ньому — подібно до того, як це робиться в .withColumn().
Різниця між методами .select() і .withColumn() полягає в тому, що .select() повертає лише вказані вами стовпці, тоді як .withColumn() повертає всі стовпці датафрейму плюс той, який ви визначили. Часто корисно на початку операції відкидати зайві стовпці, щоб не тягнути зайві дані під час обробки. У такому разі варто використовувати .select(), а не .withColumn().
Пам'ятайте: у вашому середовищі вже є SparkSession spark, а також датафрейм Spark 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(____)