เราต้องการจะปรับปรุงเป็นคอลัมน์เป็นด้วยเหมือนกัคอลัมน์ B หรือคอลัมน์ C หรือคอลัมน์ D. ซึ่งคอลัมน์ต้องเคยจะตัดสินโดยคอลัมน์ X ซึ่งมีมือถือนค่าเช่น"คอลัมน์ B"หรือ"คอลัมน์ C"หรือ"คอลัมน์ D"
นี่คือต้องการอยู่ใน pyspark dataframes
เราต้องการจะปรับปรุงเป็นคอลัมน์เป็นด้วยเหมือนกัคอลัมน์ B หรือคอลัมน์ C หรือคอลัมน์ D. ซึ่งคอลัมน์ต้องเคยจะตัดสินโดยคอลัมน์ X ซึ่งมีมือถือนค่าเช่น"คอลัมน์ B"หรือ"คอลัมน์ C"หรือ"คอลัมน์ D"
นี่คือต้องการอยู่ใน pyspark dataframes
คุณสามารถใช้ when
เพื่อประสบความสำเร็จในส่วนี้
ตัวแปร possible_values
ข้างใน derive_column_A()
ควบคุมทั้งหมดเป็นไปได้ค่าคอลัมน์. จากนี้เรา dynamically สร้างเป็นสภาพเพื่อเลือกที่เหมาะสมวนคอลัมน์
from pyspark.sql import functions as F
data = [("B1", "C1", "D1", "column C"),
("B2", "C2", "D2", "column D"),
("B3", "C3", "D3", "column B"),
("B4", "C4", "D4", "column D")]
df = spark.createDataFrame(data, ("B", "C", "D", "X"))
def derive_column_A():
possible_values = ["column B", "column C", "column D"]
column_mapping = [{col, col.split(" ")[1]} for col in possible_values]
condition = F
for possible_value in possible_values:
condition = condition.when(F.col("X") == possible_value, F.col(possible_value.split(" ")[1]))
return condition
df.withColumn("A", derive_column_A()).show()
+---+---+---+--------+---+
| B| C| D| X| A|
+---+---+---+--------+---+
| B1| C1| D1|column C| C1|
| B2| C2| D2|column D| D2|
| B3| C3| D3|column B| B3|
| B4| C4| D4|column D| D4|
+---+---+---+--------+---+