Sử dụng hàm do người dùng định nghĩa trong Spark
Bạn đã thấy phần nào sức mạnh của các hàm chuỗi dựng sẵn của Spark khi thao tác với DataFrame. Tuy nhiên, đến một mức nào đó, việc xử lý dữ liệu sẽ trở nên khó khăn nếu không tạo ra một "mớ bòng bong" các lời gọi hàm lồng nhau. Đây là lúc bạn có thể dùng User Defined Functions để thao tác với DataFrame.
Trong bài này, chúng ta sẽ dùng DataFrame voter_df, nhưng bạn sẽ thay thế cột first_name bằng chuỗi gồm tên và tên đệm.
Thư viện pyspark.sql.functions đã được nhập với bí danh F. Các lớp từ pyspark.sql.types cũng đã được nhập sẵn.
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
- Chỉnh hàm
getFirstAndMiddle()để trả về chuỗi các tên được phân tách bằng dấu cách, ngoại trừ phần tử cuối cùng trong danh sách tên. - Định nghĩa hàm này thành một hàm do người dùng định nghĩa (UDF). Hàm nên trả về kiểu chuỗi.
- Tạo một cột mới trên
voter_dftên làfirst_and_middle_namebằng UDF của bạn. - Hiển thị DataFrame.
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.
def getFirstAndMiddle(names):
# Return a space separated string of names
return ' '.join(____)
# Define the method as a UDF
udfFirstAndMiddle = F.____(____, ____)
# Create a new column using your UDF
voter_df = voter_df.withColumn('first_and_middle_name', ____(____))
# Show the DataFrame
____