我有以下使用 Spark 和 Java 8 的代码。
JavaRDD<AdLog> accessLogs = logLines.map(adLog::parseFromLogLine).cache();
我正在尝试将其转换为 Java 7。我找到了大多数代码的替代方法,但我找不到此特定代码行的替代方法。 parseFromLogLine 是 AdLog 类中的一个方法,其中 adLog 是一个对象。当遇到一行文本时,应该调用 AdLog 类中的 parseFromLogLine 方法。该方法返回一个新的 AdLog 对象。我怎样才能使用 Java 7 实现这一点。任何帮助将不胜感激。提前致谢。
最佳答案
您可以使用 Guava Functions 来帮助您解决这个问题。 (https://google.github.io/guava/releases/19.0/api/docs/com/google/common/base/Functions.html)
您在一个新类中定义它,使用 AdLog 对象作为输入和 AdLog 作为结果 ( Function<AdLog, AdLog>
) 进行初始化,然后实现将采用 Adlog
的 apply 方法。对象作为输入,它将返回 Adlog
目的。
在 apply 方法中,调用 parseFromLogLine()。
public class AdLogFunction implements Function<AdLog, AdLog> {
@Override
public AdLog apply(AdLog input) {
return input.parseFromLogLine();
}
}
完成此类后,您可以在代码中轻松使用它
关于java - 在spark中将java 8代码转换为Java 7代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40585098/