Spark で次のスカラ コードを実行しようとしていますが、何らかの理由で関数選択が呼び出されません。
var lines = sc.textFile(inputPath+fileName,1)
val lines2 =lines.map(l=>selective(
func,List(2,3),List(1,26),l,";",0
))
lines2.toArray().foreach(l=>out.write(l))
.......
選択関数は次のように定義されます。
def selective(f: (String,Boolean) => String , phoneFields: Seq[Int], codeFields: Seq[Int], in: String, delimiter:String, iMode:Int /* 0 for enc, 1 for dec */) :String =
in.split(delimiter,-1).zipWithIndex
.map {
case (str, ix)
if( phoneFields.contains(ix)||codeFields.contains(ix)) =>
var output=f(str,codeFields.contains(ix))
var sTemp=str+":"+output+"\n"
if((iMode==0)&&codeFields.contains(ix)&&(str.compareTo("")!=0) )
CodeDictString+=sTemp
else if(str.compareTo("")!=0)
PhoneDictString+=sTemp
output
case other => other._1
}.mkString(";").+("\n")
println ステートメントが実行されていません。さらに、関数は何も返しません。sc は、spark コンテキスト オブジェクトです。