转换斯卡拉表达对Java 1.8
问题描述:
我想这斯卡拉表达到Java转换:转换斯卡拉表达对Java 1.8
val corpus: RDD[String] = sc.wholeTextFiles("docs/*.md").map(_._2)
这是我在Java中:
RDD<String> corpus = sc.wholeTextFiles("docs/*.md").map(a -> a._2);
但我得到a._2
错误:。
如果我去了“超级”的方法,这是我所看到的:
package org.apache.spark.api.java.function;
import java.io.Serializable;
public interface Function<T1, R> extends Serializable {
R call(T1 var1) throws Exception;
}
答
你应该能够使用values()
让您在Java这里想要的结果:
JavaRDD<String> corpus = sc.wholeTextFiles("docs/*.md").values();
注意的是,这里的类型是JavaRDD不RDD
我得到同样的错误与此... “字符串不能转换为R” – neuromouse
现在很奇怪,'a'应该是scala.Tuple2类型。你能检查你的情况是什么类型? –
这让我有同样的错误:(Tuple2 a) - > a._2()。但是,如果我忽略字符串:(Tuple2 a) - > a._2() - 我得到另一个错误:无法解析方法映射() –
neuromouse