2016-11-17 10 views
-1

Ich habe ein Spark-Datenframe und ich möchte eine neue Spalte mit einem bestimmten Wert hinzufügen. Ich habe versucht, withcolumn Funktion zu verwenden, aber es funktioniert nicht wie erwartet. Ich möchte eine neue Spalte mit bestimmten Wert oder ich möchte eine bestehende SpalteÄndern einer Spark-Dataframe-Spalte

+0

Bitte teilen Sie Beispieldaten, versuchten Code und erwartete Ausgabe. – mtoto

+0

Ich habe einige Eigenschaften-IDs und einige Parameter. Ich muss die Eigenschaften anhand der Parameter kennzeichnen. Ich habe die Eigenschaften gefunden, die die Abzeichen erhalten sollten. Es ist in einem Datenrahmen gespeichert. Jetzt muss ich das Spaltenabzeichen mit einigen konstanten Werten hinzufügen. Also meine Ausgabe wird wie die Eigenschaft Id mit Badge – Sandeep

+0

sein bitte mit Beispiel illustrieren – mtoto

Antwort

0

Sehen Sie dieses Beispiel

ich einen Datenrahmen haben ersetzen:

>>> df.show() 
+-------+----+-----+---+ 
| name|year|month|day| 
+-------+----+-----+---+ 
| Ali|2014| 9| 1| 
| Matei|2015| 10| 26| 
|Michael|2015| 10| 25| 
|Reynold|2015| 10| 25| 
|Patrick|2015| 9| 1| 
+-------+----+-----+---+ 

Ich möchte eine Information für jede Zeile hinzufügen, I kann lit zu tun verwenden, dass

>>> from pyspark.sql.functions import lit 
>>> df.withColumn('my_new_column', lit('testing info for all')).show() 
+-------+----+-----+---+--------------------+ 
| name|year|month|day|  my_new_column| 
+-------+----+-----+---+--------------------+ 
| Ali|2014| 9| 1|testing info for all| 
| Matei|2015| 10| 26|testing info for all| 
|Michael|2015| 10| 25|testing info for all| 
|Reynold|2015| 10| 25|testing info for all| 
|Patrick|2015| 9| 1|testing info for all| 
+-------+----+-----+---+--------------------+ 

Wenn Sie eine Liste der verschiedenen Informationen für jede Zeile hinzufügen möchten, können Sie explode verwenden:

>>> from pyspark.sql.functions import explode 
>>> df.withColumn('my_new_column', 
...    explode(array(lit('testing info for all'), 
...        lit('other testing again')))).show() 
+-------+----+-----+---+--------------------+ 
| name|year|month|day|  my_new_column| 
+-------+----+-----+---+--------------------+ 
| Ali|2014| 9| 1|testing info for all| 
| Ali|2014| 9| 1| other testing again| 
| Matei|2015| 10| 26|testing info for all| 
| Matei|2015| 10| 26| other testing again| 
|Michael|2015| 10| 25|testing info for all| 
|Michael|2015| 10| 25| other testing again| 
|Reynold|2015| 10| 25|testing info for all| 
|Reynold|2015| 10| 25| other testing again| 
|Patrick|2015| 9| 1|testing info for all| 
|Patrick|2015| 9| 1| other testing again| 
+-------+----+-----+---+--------------------+