Eu folosesc urmatorul cod:
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()
De la codul de mai sus am aștepta să conducă la o eroare, deoarece pentru test_df nu selectați masculin coloana de original dataframe. Surprinzător interogarea de mai sus ruleaza foarte bine fara nici o eroare și ieșiri următoarele:
+---------+-------+
|name | id|
+---------+-------+
| abc| xx|
| def| yy|
+---------+-------+
Vreau sa inteleg logica din spatele a ceea ce scânteie este de a face. Ca pe o scânteie de documentare Selectați returnează un nou dataframe. Atunci de ce este încă în măsură de a utiliza masculin coloana de mamă dataframe.