2017-01-11 4 views
1

データフレームに選択する列をパラメータとして渡したいときに、これを実行した瞬間に毎回変更します。それは実際ので、私はそれも、それが何をすべきか受けしておりません。このデータフレームのスパークを選択するパラメータを渡す

 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 
} 
     } 

をした私が選択するようにパラメータを渡したい

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 
} 

動作します。目的は毎回パラメータとして渡すことです。

+0

あなたは(https://spark.apache.org/docs/latest/api/scala/#org.apache.spark.sql.Dataset)[ドキュメントを読む]必要があります! – user7337271

答えて

1

このようなことができます。

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

こんにちは友人、あなたの助けを感謝してください私の更新を確認してください、どのように列リストの名前を含む文字列の配列を使用して自動的にリストを作成することができますまたはforeach、任意の助けてくれてありがとう、 – user7394882

関連する問題