これを可能な限り短い文で説明する方法がよくわかりませんが、とにかく試してみます。dataという変数に、この形式の RDD があるとします。
(a,b,c)
b と c は、前の RDD 変換の結果の配列です。特定の条件に基づいて、RDD を変換して、b または c から 1 列のみを取得したいと考えています。RDD を格納するための一時変数の宣言に問題があります。
val data = sc.textFile("1.txt").map(_.split(",",-1))
//var new_data:RDD= null??? what data type should i use??
if(x ==1){
new_data = data.map{ (a,b,c) => ( b(x) ) }
}else if( x==2 ){
new_data = data.map{ (a,b,c) => ( c(x) ) }
}
//several more if statement here similar to the two above
//need to use new_data here
if文内でvalを使って new_data を宣言すると、if 文の範囲外になります。var を使用してみましたが、初期化する方法がわかりません。タイプMappedRDDおよびRDDのvarを使用してみましたが、マップ操作の値をそれに割り当てることができないようです。