Gán nhãn dữ liệu
Một dataframe df có sẵn với các cột endword: string, features: vector, và outvec: vector. Bạn cần chọn các hàng có endword bằng "him", và thêm một cột label với giá trị số nguyên 1. Sau đó, dùng phép union để thêm một số lượng hàng tương đương có endword khác "him", sao cho các hàng bổ sung này có label = 0.
Nhắc lại: trong SQL, phép so sánh khác được thực hiện bằng <>.
Bài tập này là một phần của khóa học
Nhập môn Spark SQL bằng Python
Hướng dẫn bài tập
- Import hàm
lit. - Chọn các hàng có endword là 'him' và thêm một cột số nguyên
labelvới giá trị 1. - Chọn các hàng có endword không phải 'him' và thêm một cột số nguyên
labelvới giá trị 0. - Union hai tập này, dùng số lượng ví dụ âm bằng với số lượng ví dụ dương.
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.
# Import the lit function
from pyspark.____ import lit
# Select the rows where endword is 'him' and label 1
df_pos = df.where("____ = 'him'")\
.withColumn('label', lit(____))
# Select the rows where endword is not 'him' and label 0
df_neg = df.where("endword <> '____'")\
.withColumn('label', ____(0))
# Union pos and neg in equal number
df_examples = df_pos.____(df_neg.limit(df_pos.count()))
print("Number of examples: ", df_examples.count())
df_examples.where("endword <> 'him'").sample(False, .1, 42).show(5)