将列名显示到列表[列]scala中

将列名显示到列表[列]scala中,scala,apache-spark,apache-spark-sql,Scala,Apache Spark,Apache Spark Sql,我想将datframe中的列列表插入列表[column],以便执行select请求。这意味着要获取列的列表并将其自动插入列表[列]中任何帮助谢谢 object PCA extends App{ val spark = SparkSession.builder.master("local").appName("my-spark-app").getOrCreate() val strPath="C:/Users/mhattabi/Desktop/testBis2.txt"

我想将
datframe
中的列列表插入列表[column],以便执行select请求。这意味着要获取列的列表并将其自动插入列表[列]中任何帮助谢谢

object PCA extends App{
     val spark = SparkSession.builder.master("local").appName("my-spark-app").getOrCreate()
     val strPath="C:/Users/mhattabi/Desktop/testBis2.txt"
     val intial_Data=spark.read.option("header",true).csv(strPath)
     //array string contains names of column
     val arrayList=intial_Data.columns
     var colsList = List[Column]()
     //wanna insert name of column into the listColum
     arrayList.foreach(p=>colsList.)

     //i want to have something like
     //val colsList = List(col("col1"),col("col2"))
     //intial_Data.select(colsList:_*).show
}
您可以按如下方式使用col函数:

var colsList = List[Column]()
arrayList.columns.foreach { c =>  colsList:+=col(c)}
请记住导入sql函数以使用col:


我宁愿使用不可变列表,也不愿通过如下转换使用变量列表

val arrayList = initial_Data.columns
val colsList = arrayList.map(col)
val arrayList = initial_Data.columns
val colsList = arrayList.map(col)