drop
ist keine Nebeneffekt-Funktion. Es gibt einen neuen Dataframe mit den angegebenen Spalten zurück. Sie hätten also das neue Datenfeld einem Wert zugewiesen, auf den später verwiesen wird, wie unten gezeigt.
>>> df2000 = spark.createDataFrame([('a',10,20,30),('a',10,20,30),('a',10,20,30),('a',10,20,30)],['key', 'jan', 'feb', 'mar'])
>>> cols = ['jan', 'feb', 'mar']
>>> df2000.show()
+---+---+---+---+
|key|jan|feb|mar|
+---+---+---+---+
| a| 10| 20| 30|
| a| 10| 20| 30|
| a| 10| 20| 30|
| a| 10| 20| 30|
+---+---+---+---+
>>> cols = ['jan', 'feb', 'mar']
>>> df2000_dropped_col = reduce(lambda x,y: x.drop(y),cols,df2000)
>>> df2000_dropped_col.show()
+---+
|key|
+---+
| a|
| a|
| a|
| a|
+---+
jetzt eine show
auf dem neuen Datenrahmen tun das gewünschte Ergebnis mit allen Monat Spalten fallen gelassen ergeben.
Es funktioniert auch nicht in pyspark – NandaKrishnan
können Sie das versuchen? 'df2000_dropped_cols = df2000.drop ('jan', 'feb', 'mar')'? –
Ja. Ich habe es versucht. Es funktioniert nicht. Df2000_dropped_cols wird zugewiesen .. – NandaKrishnan