2016-11-14 77 views
1

我有下面的代码,它使用的火花和Java 8转换一个java 8代码到Java 7的代码火花

JavaRDD<AdLog> accessLogs = logLines.map(adLog::parseFromLogLine).cache(); 

我试图将其转换为Java 7中,我发现其他方法对大多数的代码,但我找不到这种特定的代码行的替代方案。 parseFromLogLine是AdLog类中的一种方法,其中adLog是一个对象。遇到一行文本时,应该调用AdLog类中的parseFromLogLine方法。该方法返回一个新的AdLog对象。我如何使用Java 7实现这一点。任何帮助将不胜感激。提前致谢。

回答

0

你可以使用番石榴功能来帮助你解决这个问题。 (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(); 
    } 
} 

一旦这个类来完成,你可以很容易地在代码中使用它