传递参数以选择数据帧spark

时间:2017-01-11 15:14:16

标签: scala apache-spark apache-spark-sql

我想将要在数据框中选择的列作为参数传递,因为我在每次更改时都会这样做。它确实有效

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)
val inputData=intial_Data.select("col1","col2").show
}

我想将参数传递给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 columns="col1","col2"
            val intial_Data=spark.read.option("header",true).csv(strPath)
           val listcolu=intial_Data.columns
foreach(string s in listcolu)
{create the list insert the column name 
}
        }

它甚至没有接受它应该做的事情。目的是每次都将它作为参数传递。

1 个答案:

答案 0 :(得分:1)

你可以这样做。

import org.apache.spark.sql.functions.col
val colsList = List(col("col1"),col("col2"))
intial_Data.select(colsList:_*).show