Chọn cột
Phiên bản Spark của SELECT trong SQL là phương thức .select(). Phương thức này nhận nhiều đối số — mỗi đối số tương ứng với một cột bạn muốn chọn. Các đối số có thể là tên cột dưới dạng chuỗi (mỗi cột một chuỗi) hoặc đối tượng cột (theo cú pháp df.colName). Khi truyền vào một đối tượng cột, bạn có thể thực hiện các phép toán như cộng hoặc trừ trên cột để biến đổi dữ liệu bên trong, tương tự như trong .withColumn().
Điểm khác nhau giữa .select() và .withColumn() là .select() chỉ trả về các cột bạn chỉ định, còn .withColumn() trả về toàn bộ các cột của DataFrame cùng với cột bạn vừa định nghĩa. Thường thì nên loại bỏ sớm các cột không cần thiết để bạn không phải kéo theo dữ liệu thừa trong quá trình xử lý. Trong trường hợp này, bạn sẽ dùng .select() chứ không phải .withColumn().
Hãy nhớ rằng một SparkSession tên là spark đã có sẵn trong không gian làm việc của bạn, cùng với Spark DataFrame flights.
Bài tập này là một phần của khóa học
Nền tảng về PySpark
Hướng dẫn bài tập
- Chọn các cột
"tailnum","origin"và"dest"từflightsbằng cách truyền tên cột dưới dạng chuỗi. Lưu vàoselected1. - Chọn các cột
"origin","dest"và"carrier"bằng cú phápdf.colName, sau đó lọc kết quả bằng cả hai bộ lọc đã được định nghĩa sẵn cho bạn (filterAvàfilterB) để chỉ giữ các chuyến bay từ SEA đến PDX. Lưu vàoselected2.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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(____)