首页 > 解决方案 > 遍历火花数据框并为每行连接两列

问题描述

我正在迭代 spark datframe,我想为每一行连接两列。

df.collect().foreach{
      row =>
        val x = row.toSeq
        println(x)
        println(x(0))
        val y = "row(1)+row(2)"
         }

标签: apache-spark-sql

解决方案


val dataFrame = sc.parallelize(Seq(("one", 2.0),("two", 1.5),("three", 8.0))).toDF("id", "value")
import org.apache.spark.sql.functions.concat
val dfToList = dataFrame.withColumn("concat" , concat($"id",$"value")).drop("id").drop("value").collect()
println(dfToList)

这给

dataFrame: org.apache.spark.sql.DataFrame = [id: string, value: double]
import org.apache.spark.sql.functions.concat
dfToList: Array[org.apache.spark.sql.Row] = Array([one2.0], [two1.5], [three8.0])

这是要找的吗?


推荐阅读