1

ich einen Datenrahmen mit folgenden Spalten:Spark-Datenrahmen eine Zeile für jede vorhandene Zeile hinzufügen

groupid,unit,height 
---------------------- 
1,in,55 
2,in,54 

Ich mag * 2.54 ein weiteren Datenrahmen mit zusätzlichen Zeilen, in denen Einheit = cm und Höhe = Höhe schaffen.

Resultierende Datenrahmen:

groupid,unit,height 
---------------------- 
1,in,55 
2,in,54 
1,cm,139.7 
2,cm,137.16 

nicht sicher, wie ich Funken UDF verwenden können und hier explodieren. Jede Hilfe wird geschätzt. Vielen Dank im Voraus.

Antwort

3

Sie eine andere dataframe mit Änderungen erstellen, können Sie withColumn und dann union beide dataframes als

import sqlContext.implicits._ 
import org.apache.spark.sql.functions._ 

val df = Seq(
    (1, "in", 55), 
    (2, "in", 54) 
).toDF("groupid", "unit", "height") 

val df2 = df.withColumn("unit", lit("cm")).withColumn("height", col("height")*2.54) 

df.union(df2).show(false) 

erfordern verwenden, sollten Sie haben

+-------+----+------+ 
|groupid|unit|height| 
+-------+----+------+ 
|1  |in |55.0 | 
|2  |in |54.0 | 
|1  |cm |139.7 | 
|2  |cm |137.16| 
+-------+----+------+ 
Verwandte Themen