2017-03-24 112 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我不知道爲什麼,因爲我是Spark新手,應該是什麼正確的參數? – user7344209

+0

這取決於版本。但你不需要我告訴你。檢查文檔。 – shmosel

回答

0

我只是想通了。需要在最後調用iterator()。

JavaRDD<String> dictionary = lines.flatMap(l -> Arrays.asList(l.split(" ")).iterator()); 
相關問題