Thêm trường ID
Khi làm việc với dữ liệu, đôi khi bạn chỉ muốn truy cập một số trường nhất định và thực hiện các thao tác khác nhau. Trong bài này, hãy tìm tất cả các tên cử tri duy nhất từ DataFrame và thêm một số ID duy nhất. Lưu ý rằng Spark gán ID dựa trên partition của DataFrame — vì vậy giá trị ID có thể lớn hơn nhiều so với số hàng thực tế trong DataFrame.
Với cơ chế xử lý lazy của Spark, các ID thực ra chỉ được tạo khi có action được thực thi và có thể khá ngẫu nhiên tùy theo kích thước tập dữ liệu.
Phiên spark và một Spark DataFrame df chứa tệp DallasCouncilVotes.csv.gz đã có sẵn trong không gian làm việc của bạn. 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
- Chọn các giá trị duy nhất từ cột
VOTER NAMEvà tạo một DataFrame mới tênvoter_df. - Đếm số hàng trong DataFrame
voter_df. - Thêm cột ROW_ID bằng hàm thích hợp của Spark.
- Hiển thị các hàng có 10 giá trị ROW_ID cao nhất.
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 all the unique council voters
voter_df = df.____(df["VOTER NAME"]).____()
# Count the rows in voter_df
print("\nThere are %d rows in the voter_df DataFrame.\n" % ____)
# Add a ROW_ID
voter_df = voter_df.____('ROW_ID', F.____())
# Show the rows with 10 highest IDs in the set
voter_df.orderBy(voter_df.____.desc()).show(____)