我有一个使用Spark的Java类。我需要从JavaRDD中过滤掉标题。这就是我想要这样做的方式。
String first = data.first();
JavaRDD<String> filteredData = data.filter((String s) -> {return !s.contains(first);});
但是,无法编译此代码data.filter((String s) -> {return !s.contains(first);})
。 IntelliJ IDE说“在此语言级别不支持Lambda表达式”。
答案 0 :(得分:4)
你可以在Java 7上使用lambdas,但它有点涉及 - 你必须使用像Retrolambda这样的东西。
你也可以在没有lambdas的情况下做同样的事情。 Lambda可以通过匿名类轻松表示,但它更详细。
final String first = data.first();
JavaRDD<String> filteredData = data.filter(new Function<String, Boolean>() {
@Override public Boolean call(String s) {
return !s.contains(first);
}
});