web-dev-qa-db-ja.com

Sparkデータフレームは、既存のすべての行に行を追加します

次の列を持つデータフレームがあります。

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を使用して、ここで爆発させる方法がわかりません。助けていただければ幸いです。よろしくお願いします。

6
dreddy

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|
+-------+----+------+
10
Ramesh Maharjan