Bắt đầu ngayBắt đầu miễn phí

Tạo cột mới

Trong chương này, bạn sẽ học cách dùng các phương thức do lớp DataFrame của Spark cung cấp để thực hiện những thao tác dữ liệu phổ biến.

Hãy bắt đầu với các phép toán theo cột. Trong Spark, bạn có thể làm điều này bằng phương thức .withColumn(), nhận hai đối số. Thứ nhất là một chuỗi tên cột mới, và thứ hai là chính cột mới đó.

Cột mới phải là một đối tượng thuộc lớp Column. Tạo đối tượng này rất đơn giản: chỉ cần trích xuất một cột từ DataFrame bằng df.colName.

Cập nhật một Spark DataFrame hơi khác so với làm việc trong pandas vì Spark DataFrame là bất biến (immutable). Điều này có nghĩa là nó không thể bị thay đổi, nên các cột không thể được cập nhật trực tiếp tại chỗ.

Vì vậy, tất cả các phương thức này đều trả về một DataFrame mới. Để ghi đè DataFrame gốc, bạn phải gán lại DataFrame được trả về từ phương thức như sau:

df = df.withColumn("newCol", df.oldCol + 1)

Đoạn mã trên tạo ra một DataFrame có các cột giống df và thêm một cột mới, newCol, trong đó mỗi giá trị bằng giá trị tương ứng từ oldCol cộng thêm một.

Để ghi đè một cột đã tồn tại, chỉ cần truyền tên cột đó làm đối số đầu tiên!

Lưu ý, một SparkSession tên là spark đã có sẵn trong không gian làm việc của bạn.

Bài tập này là một phần của khóa học

Nền tảng về PySpark

Xem khóa học

Hướng dẫn bài tập

  • Dùng phương thức spark.table() với đối số "flights" để tạo một DataFrame chứa dữ liệu của bảng flights trong .catalog. Lưu nó vào biến flights.
  • Hiển thị phần đầu của flights bằng flights.show(). Kiểm tra đầu ra: cột air_time chứa thời lượng chuyến bay tính theo phút.
  • Cập nhật flights để thêm một cột mới tên duration_hrs, chứa thời lượng mỗi chuyến bay tính theo giờ (bạn cần chia air_time cho số phút trong một giờ).

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.

# Create the DataFrame flights
flights = spark.table(____)

# Show the head
____.____()

# Add duration_hrs
flights = flights.withColumn(____)
Chỉnh sửa và Chạy Mã