如何將火花數據幀中的所有列名稱獲取到Seq變量中。獲取Spark數據幀列表
輸入數據&架構
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編程中變量的所有列名。我試過如下,但它不起作用。
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)
輸出operty應序列[org.apache。 spark.sql.Column],而不是List [String]。 – raam
@raam - 你想用輸出/列名稱做什麼?爲什麼你需要它是類型的列? – Yaron
我需要通過中間結果來實現這個邏輯。所以我需要列的輸出 – raam