如何将Spark DataFrame中的所有列名获取为Seq变量。
输入数据和模式。
我需要使用Scala编程将所有列名存储在变量中。 我已尝试以下操作,但未成功。
输入数据和模式。
val dataset1 = Seq(("66", "a", "4"), ("67", "a", "0"), ("70", "b", "4"), ("71", "d", "4")).toDF("KEY1", "KEY2", "ID")
dataset1.printSchema()
root
|-- KEY1: string (nullable = true)
|-- KEY2: string (nullable = true)
|-- ID: string (nullable = true)
我需要使用Scala编程将所有列名存储在变量中。 我已尝试以下操作,但未成功。我需要使用Scala编程将所有列名存储在变量中。 我已尝试以下操作,但未成功。
val selectColumns = dataset1.schema.fields.toSeq
selectColumns: Seq[org.apache.spark.sql.types.StructField] = WrappedArray(StructField(KEY1,StringType,true),StructField(KEY2,StringType,true),StructField(ID,StringType,true))
预期输出:
val selectColumns = Seq(
col("KEY1"),
col("KEY2"),
col("ID")
)
selectColumns: Seq[org.apache.spark.sql.Column] = List(KEY1, KEY2, ID)