wpadłem na zaskakującą zachowań podczas korzystania .select()
:Co dokładnie robi funkcja .select()?
>>> my_df.show()
+---+---+---+
| a| b| c|
+---+---+---+
| 1| 3| 5|
| 2| 4| 6|
+---+---+---+
>>> a_c = s_df.select(col("a"), col("c")) # removing column b
>>> a_c.show()
+---+---+
| a| c|
+---+---+
| 1| 5|
| 2| 6|
+---+---+
>>> a_c.filter(col("b") == 3).show() # I can still filter on "b"!
+---+---+
| a| c|
+---+---+
| 1| 5|
+---+---+
Takie zachowanie got my zastanawiasz ... Czy moje następujące punkty są prawidłowe?
DataFrames to po prostu widoki, prosta DataFrame to sam widok. W moim przypadku a_c
jest po prostu widokiem na my_df
.
Po utworzeniu a_c
nie utworzono nowych danych, a_c
wskazuje tylko te same dane, które wskazuje my_df
.
Jeśli istnieją dodatkowe informacje, które są istotne, proszę dodać!
zaktualizowane odpowiedź jak sugeruje @Chris H –
myślę, nie wyjaśniając etapy to wyjaśnienie brakuje mięsa, co się dzieje naprawdę –
@ JustinPihony- myślę etap nie wystarczy logika w tym przypadku. –