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

Chỉnh sửa các cột của DataFrame

Trước đó, bạn đã lọc bỏ các hàng không giống tên hợp lệ. Dựa trên công việc đó, quản lý của bạn yêu cầu tạo hai cột mới - first_namelast_name. Cô ấy muốn bạn tách cột VOTER_NAME thành các từ theo dấu cách bất kỳ. Bạn sẽ coi từ cuối cùng là last_name, và tất cả các từ còn lại là first_name. Trong bài này, bạn sẽ dùng một số hàm mới gồm .split(), .size(), và .getItem(). Hàm .getItem(index) nhận một số nguyên để trả về phần tử tương ứng trong cột. Các hàm .split().size() nằm trong thư viện pyspark.sql.functions.

Lưu ý rằng các thao tác này thường phụ thuộc vào bài toán cụ thể. Đưa dữ liệu về đúng định dạng thường quan trọng hơn chi tiết nhỏ của định dạng. Nhiệm vụ làm sạch dữ liệu hiếm khi chỉ phục vụ một người — bám theo một định dạng đã xác định giúp chia sẻ dữ liệu dễ dàng hơn về sau (ví dụ, Paul không cần lo về tên nữa — Mary đã làm sạch bộ dữ liệu rồi).

DataFrame cử tri đã được lọc từ bài trước của bạn có sẵn dưới tên voter_df. Thư viện pyspark.sql.functions đã được nạp với bí danh F.

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

Làm sạch dữ liệu với PySpark

Xem khóa học

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

  • Thêm cột mới tên splits chứa danh sách các khả năng của tên.
  • Dùng phương thức getItem() và tạo cột mới tên first_name.
  • Lấy phần tử cuối của danh sách splits và tạo cột tên last_name.
  • Xóa cột splits và hiển thị voter_df mới.

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.

# Add a new column called splits separated on whitespace
voter_df = voter_df.withColumn(____, F.____(voter_df.VOTER_NAME, '\s+'))

# Create a new column called first_name based on the first item in splits
voter_df = voter_df.withColumn(____, voter_df.splits.getItem(____)

# Get the last entry of the splits list and create a column called last_name
voter_df = voter_df.withColumn(____, voter_df.splits.getItem(F.____('splits') - ____))

# Drop the splits column
voter_df = voter_df.____('splits')

# Show the voter_df DataFrame
voter_df.show()
Chỉnh sửa và Chạy Mã