2017-07-22 7 views
0
df2000.drop('jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec').show() 

enter image description herewie die Spalten in Datenrahmen

jetzt zu löschen, ohne gelöschte Spalten in Datenrahmen

enter image description here

df2000.show() 

zeigt ist, wenn ich mit dem Befehl show allein ausführen, um die Tabelle zu überprüfen. kommt aber mit gelöschter Spalte.

Antwort

1

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.

+0

Es funktioniert auch nicht in pyspark – NandaKrishnan

+0

können Sie das versuchen? 'df2000_dropped_cols = df2000.drop ('jan', 'feb', 'mar')'? –

+0

Ja. Ich habe es versucht. Es funktioniert nicht. Df2000_dropped_cols wird zugewiesen .. – NandaKrishnan

Verwandte Themen