2016-10-18 25 views
2

Java実装にPysparkアプリケーションを書き始めました。私はJava 8を使用しています。私はちょうどjavaで基本的なspark progrmaのいくつかを実行し始めました。私は以下の例を使用しましたwordcount例。私はGoogleで検索すると、私はlines.flatMap(line -> Arrays.asList(line.split(" ")))Type mismatch: cannot convert from JavaRDD<Object> to JavaRDD<String>エラーを取得していますsparkタイプが一致しません:JavaRDD <Object>からJavaRDDに変換できません<String>

SparkConf conf = new SparkConf().setMaster("local").setAppName("Work Count App"); 

// Create a Java version of the Spark Context from the configuration 
JavaSparkContext sc = new JavaSparkContext(conf); 

JavaRDD<String> lines = sc.textFile(filename); 

JavaPairRDD<String, Integer> counts = lines.flatMap(line -> Arrays.asList(line.split(" "))) 
        .mapToPair(word -> new Tuple2(word, 1)) 
        .reduceByKey((x, y) -> (Integer) x + (Integer) y) 
        .sortByKey(); 

、すべてのJavaベースの8スパークの例では、私は同じ上記implementation.Whatが私のenvironemntまたはプログラムに間違っていた見ました。

誰かが私を助けることができますか?

+0

'' JavaSparkContext'インスタンスをsc'です。 – Ravikumar

+0

@Ravikumar、はい、JavaSparkContextです。 – Backtrack

答えて

4

このコードを使用してみてください。あなたのコードがList<String>を作成している間、実際の問題はrdd.flatMap関数はIterator<String>を想定しています。 iterator()を呼び出すと問題が解決されます。

JavaPairRDD<String, Integer> counts = lines.flatMap(line -> Arrays.asList(line.split(" ")).iterator()) 
      .mapToPair(word -> new Tuple2<String, Integer>(word, 1)) 
      .reduceByKey((x, y) -> x + y) 
      .sortByKey(); 

counts.foreach(data -> { 
     System.out.println(data._1()+"-"+data._2()); 
    }); 
+0

説明文を追加してください。 – Backtrack

+1

@Backtrack詳細を追加しました。 – abaghel

0

は、このコード

JavaRDD<String> words = 
    lines.flatMap(line -> Arrays.asList(line.split(" "))); 
JavaPairRDD<String, Integer> counts = 
    words.mapToPair(w -> new Tuple2<String, Integer>(w, 1)) 
     .reduceByKey((x, y) -> x + y); 
+0

いいえ、まだ同じエラー – Backtrack

0
JavaRDD<String> obj = jsc.textFile("<Text File Path>"); 
JavaRDD<String> obj1 = obj.flatMap(l->{ 
ArrayList<String> al = new ArrayList(); 
String[] str = l.split(" "); 
for(int i=0;i<str/length;i++) { 
    al.add(str[i]); 
} 
return al.iterator(); 
}); 
+1

回答に役立つコメントを書き留めることができれば幸いです。 – ajc

関連する問題