我使用了下列代码:
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我不选择男性列从原始数据框. 令人惊讶的是上述运行查询仅仅是没有任何错误和产出如下:
+---------+-------+
|name | id|
+---------+-------+
| abc| xx|
| def| yy|
+---------+-------+
我想要了解背后的逻辑什么样的火花在做什么。 因为每次的火花文件选择返回一个新的数据框. 那么为什么它仍然能够使用男列从父数据框.