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_name và last_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() và .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
Hướng dẫn bài tập
- Thêm cột mới tên
splitschứ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ênfirst_name. - Lấy phần tử cuối của danh sách
splitsvà tạo cột tênlast_name. - Xóa cột
splitsvà hiển thịvoter_dfmớ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()