2016-09-15 12 views
-1


これを行うには説明がありますが、まだできません。分割してスカラで選択

私はval data=sc.textFile("hdfs://ncdc/isd-history.csv")

dataは、フォーム持って分割したい:("949999","00338","PORTLAND (CASHMORE)","AS","","","-38.320","+141.480","+0081.0","19690724","19781113")

私は、データを分割し、私はこれを行っているだけ(949999)第一及び第三(PORTLAND (CASHMORE))

を取りたい、

val RDD = (data.filter(s => (s.split(',')(0) , s.split(',')(2)))) 

しかし、動作しません。

+0

正確には機能しません。エラーはありますか?出力は何ですか? –

答えて

0

RDD.filterフィルタ記録、ない「列」 - それはBooleanにレコードタイプ(文字列は、私はこのケースでは、想定する)から関数を期待して、この関数はfalseを返されるすべてのレコードを除外します。

val RDD = data.map(s => (s.split(',')(0), s.split(',')(2))) 

またはよりよい:(「フィルタリング」という文字列のうち一部ながら)あなたはRDD.map代わりのRDD.filterを使用する必要がありますので、あなたがにしようとしている

は、タプルの中に文字列からに各レコードを変換しますまだ:

val RDD = data.map(_.split(',')).map(arr => (arr(0), arr(2))) 
0

splitを使用して、文字列を分割し、コレクションを分割しないでください。

これはタプルのRDDであれば、これは動作するはずです:

val RDD = data map(row => (row._1, row._3))

これは単なるインデックス02ため_1_3をサブArray/Seq[String]RDDある場合。

関連する問題