首页 > 解决方案 > 如何使用模式字段选择数据框列

问题描述

我加入了 2 个数据框,然后只想选择一个数据框的列。所以我尝试使用它的模式作为列,select但不知道如何。语言是 Scala。

标签: scalaapache-spark

解决方案


这可以通过如下所示的示例来实现。在这个例子中,我使用了两种不同的模式。这可以通过使用多字段选择来实现_*

import spark.implicits._
import org.apache.spark.sql.functions._
import org.apache.spark.sql.types._

val empSchema = StructType(Array(StructField("id", StringType, true), StructField("name",StringType,true),StructField("prof",StringType,true)))
val salarySchema = StructType(Array(StructField("emp_id", StringType, true),StructField("salary",IntegerType,true)))

val emp = spark.read.option("delimiter", ",").schema(empSchema).csv("/tmp/test1.csv")
val salary=spark.read.option("delmiter",",").schema(salarySchema).csv("/tmp/test2.csv")
val joined = emp.join(salary,emp("id")===salary("emp_id"), "outer")

val columnsEmp = emp.columns.map(name => col(name)).toSeq
joined.select(columnsEmp: _*).show // gives columns from only emp dataframe

如果它回答了您的问题,请将其标记为答案。


推荐阅读