将列值从一个数据帧复制到 Spark + Scala 中的另一个数据帧
Copying columns values from one dataframe into another dataframe in Spark + Scala
我想合并 2 个 spark 数据帧 (scala)。第一个数据框只包含一行。第二个数据框有多行。我想合并这些并将第一个数据框中的地址/ phone 列值复制到第二个数据框中的所有行。有没有办法使用 Spark 操作?
DF1
name age address phone
ABC 25 XYZ 00000
DF2
name age
Bill 30
Steve 40
Jackie 50
最终DF
name age address phone
ABC 25 XYZ 00000
Bill 30 XYZ 00000
Steve 40 XYZ 00000
Jackie 50 XYZ 00000
有一个简单的方法可以做到:
import org.apache.spark.sql.functions.lit
val row = df1.select("address", "phone").collect()(0)
val finalDF = df2.withColumn("address", lit(row(0)))
.withColumn("phone", lit(row(1))).union(df1)
您可以使用 name
的简单左 .join
和左侧的 df2
(从 df1
获得的 age
):
val results = df2.select("name", "address", "phone")
.join(df1, Seq("name"), "left")
我想合并 2 个 spark 数据帧 (scala)。第一个数据框只包含一行。第二个数据框有多行。我想合并这些并将第一个数据框中的地址/ phone 列值复制到第二个数据框中的所有行。有没有办法使用 Spark 操作?
DF1
name age address phone
ABC 25 XYZ 00000
DF2
name age
Bill 30
Steve 40
Jackie 50
最终DF
name age address phone
ABC 25 XYZ 00000
Bill 30 XYZ 00000
Steve 40 XYZ 00000
Jackie 50 XYZ 00000
有一个简单的方法可以做到:
import org.apache.spark.sql.functions.lit
val row = df1.select("address", "phone").collect()(0)
val finalDF = df2.withColumn("address", lit(row(0)))
.withColumn("phone", lit(row(1))).union(df1)
您可以使用 name
的简单左 .join
和左侧的 df2
(从 df1
获得的 age
):
val results = df2.select("name", "address", "phone")
.join(df1, Seq("name"), "left")