私はスカラーが初めてです。私はRDDを反復し、各値を配列または他のコレクションに格納しています。しかし、値はArray内に格納されていません。配列や他のコレクションのRDDとストアド値をスカラのスパークで繰り返す
val ItrRdd = sqlContext.sql("select district,state FROM world ").rdd
var ItrRdd_data = ItrRdd.map { x =>
(x.getString(0), x.getString(1))
}
var district = Array[String]()
ItrRdd_data.map{ x =>
district.+:(x._1)
}
その後、私は地区を印刷する場合、それは空白になります。 誰かがこれを行うのに役立ちますか他の人に似ていますか?
ありがとうございます。
1. '+計算を取得するには、以下を使用します:'それは新しい配列を作成し、 'district'を変更しませんが。 2. http://spark.apache.org/docs/latest/programming-guide.html#understanding-closures-a-nameclosureslinkaを読んでください。 –
それは....かもしれないが、私は配列が値で埋める必要があります。 –
問題1が修正されても、これはSparkであるため、やはりうまくいきません。OPは変数 'district'を使用できず、作品全体に分散されることを期待しています。 OP:あなたは '地区 'のためのRDDを作り(その後' 'collect()' ')やソルトインはあまり好きではありません)、アキュムレータを使う必要があります。 –