2017-03-24 11 views
0

私はApache Sparkの学習を始め、プロジェクトを始めました。最初のタスクは、複数の行のテキストを含むファイルを読み込んで辞書を取得することです。タイプの不一致:JavaRDD <Object>からJavaRDDに変換できません<String>

JavaRDD<String> lines = spark.sparkContext().textFile("tokens.txt",10).toJavaRDD(); 
JavaRDD<String> dictionary = lines.flatMap(l -> l.split(" ")); 

私も

JavaRDD<String> dictionary = lines.flatMap(l -> Arrays.asList(l.split(" "))); 

を試してみましたが、Eclipseは私にこのエラーを与えている:私は間違って

Type mismatch: cannot convert from JavaRDD<Object> to JavaRDD<String>

何をしているのですか?私の理解に基づいて、私は次のコードを記述しますか

+0

なぜ 'l - > l.split(" ")'が 'flatMap()'の有効な引数になるのですか? – shmosel

+0

@shmosel私がスパークを初めて習得して以来、なぜ正しい議論になるべきなのか分かりません。 – user7344209

+0

バージョンによって異なります。しかし、あなたは私にあなたに言う必要はありません。ドキュメントを確認してください。 – shmosel

答えて

0

私はそれを理解しました。最後にiterator()を呼び出す必要があります。

JavaRDD<String> dictionary = lines.flatMap(l -> Arrays.asList(l.split(" ")).iterator()); 
関連する問題