J'utilise le code suivant:
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 le code ci-dessus je m'attends à provoquer une erreur parce que, pour la test_df je ne sélectionnez le mâle de la colonne à partir de l'original dataframe. Étonnamment, la requête ci-dessus fonctionne très bien sans aucune erreur et sorties suivantes:
+---------+-------+
|name | id|
+---------+-------+
| abc| xx|
| def| yy|
+---------+-------+
Je veux comprendre la logique derrière ce que l'étincelle est en train de faire. Comme par l'étincelle de la documentation Sélectionnez retourne une nouvelle dataframe. Alors pourquoi est-il toujours en mesure d'utiliser les hommes de la colonne de la mère dataframe.