Spark 数据框为每个现有行添加一行
Spark dataframe add a row for every existing row
我有一个包含以下列的数据框:
groupid,unit,height
----------------------
1,in,55
2,in,54
我想创建另一个包含额外行的数据框,其中 unit=cm 和 height=height*2.54。
结果数据帧:
groupid,unit,height
----------------------
1,in,55
2,in,54
1,cm,139.7
2,cm,137.16
不确定如何在此处使用 spark udf 和 explode。
任何帮助表示赞赏。
提前致谢。
您可以创建另一个 dataframe
并使用 withColumn
进行更改,然后 union
dataframes
和
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)
你应该
+-------+----+------+
|groupid|unit|height|
+-------+----+------+
|1 |in |55.0 |
|2 |in |54.0 |
|1 |cm |139.7 |
|2 |cm |137.16|
+-------+----+------+
我有一个包含以下列的数据框:
groupid,unit,height
----------------------
1,in,55
2,in,54
我想创建另一个包含额外行的数据框,其中 unit=cm 和 height=height*2.54。
结果数据帧:
groupid,unit,height
----------------------
1,in,55
2,in,54
1,cm,139.7
2,cm,137.16
不确定如何在此处使用 spark udf 和 explode。 任何帮助表示赞赏。 提前致谢。
您可以创建另一个 dataframe
并使用 withColumn
进行更改,然后 union
dataframes
和
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)
你应该
+-------+----+------+
|groupid|unit|height|
+-------+----+------+
|1 |in |55.0 |
|2 |in |54.0 |
|1 |cm |139.7 |
|2 |cm |137.16|
+-------+----+------+