转换一个java 8代码到Java 7的代码火花
问题描述:
我有下面的代码,它使用的火花和Java 8转换一个java 8代码到Java 7的代码火花
JavaRDD<AdLog> accessLogs = logLines.map(adLog::parseFromLogLine).cache();
我试图将其转换为Java 7中,我发现其他方法对大多数的代码,但我找不到这种特定的代码行的替代方案。 parseFromLogLine是AdLog类中的一种方法,其中adLog是一个对象。遇到一行文本时,应该调用AdLog类中的parseFromLogLine方法。该方法返回一个新的AdLog对象。我如何使用Java 7实现这一点。任何帮助将不胜感激。提前致谢。
答
你可以使用番石榴功能来帮助你解决这个问题。 (https://google.github.io/guava/releases/19.0/api/docs/com/google/common/base/Functions.html)
你在一个新的类定义它,你有AdLog对象作为输入和AdLog结果(Function<AdLog, AdLog>
)初始化,你实现了应用方法将采取Adlog
对象作为输入,它会返回Adlog
对象。 而在apply方法中,您可以调用parseFromLogLine()。
public class AdLogFunction implements Function<AdLog, AdLog> {
@Override
public AdLog apply(AdLog input) {
return input.parseFromLogLine();
}
}
一旦这个类来完成,你可以很容易地在代码中使用它