ผมจะขอใช้ห้องตามรหัส:
random = [("ABC",xx, 1),
("DEF",yy,1),
("GHI",zz, 0)
]
randomColumns = ["name","id", "male"]
randomDF = spark.createDataFrame(data=random, schema = randomColumns)
test_df = randomDF.select("name", "id")
test_df.filter(f.col("male") == '1').show()
มาจากด้านบนรหัสผมคาดหวังว่ามันจะส่งผลให้เกิดข้อผิดพลาดเพราะสำหรับ test_df ฉันไม่เลือกผู้ชายคอลัมน์จากดั้งเดิม dataframe. น่าแปลกที่อยู่เหนือการวิ่งได้ดีโดยไม่มีอะไรเกิดข้อผิดพลาดและแสดงผลต่อไปนี้:
+---------+-------+
|name | id|
+---------+-------+
| abc| xx|
| def| yy|
+---------+-------+
ฉันอยากจะเข้าใจตรรกะยู่เบื้องหลังออลสปาร์คกำลังทำอะไรอยู่ เป็นส่วนหนึ่งที่ออลสปาร์คเอกสารเลือกลับมาใหม่ dataframe. งั้นทำไมมันยังคงสามารถใช้เวทมนตร์ที่ผู้ชายคอลัมน์จากพ่อแม่ dataframe.