将列值从一个数据帧复制到 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")