【问题标题】:Spark dataframe add a row for every existing rowSpark数据框为每个现有行添加一行
【发布时间】:2017-12-13 16:10:01
【问题描述】:

我有一个包含以下列的数据框:

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 并在此处爆炸。 任何帮助表示赞赏。 提前致谢。

【问题讨论】:

    标签: scala apache-spark apache-spark-sql explode


    【解决方案1】:

    您可以使用withColumnunion 来创建另一个dataframe,并使用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|
    +-------+----+------+
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-20
      • 1970-01-01
      • 1970-01-01
      • 2019-03-26
      • 1970-01-01
      相关资源
      最近更新 更多