java - 在spark中将java 8代码转换为Java 7代码

标签 java apache-spark java-8 java-7

我有以下使用 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/

相关文章:

apache-spark - PySpark - 拆分字符串列并将它们的一部分连接起来以形成新列

java - 方法引用不符合功能接口(interface),但编译不会失败......是设计使然吗?

java - 如何从一组对象生成组合?

实现 toFindResult() 的 Java Matcher 类

java - 如何从没有空格的字符串中提取某些特殊字符之间的所有单词?

java - JDBC 结果集类型滚动敏感

python - 如何将 spark 与 python 或 jupyter 笔记本一起使用

apache-spark - 如何在Mac上使用Homebrew安装apache-spark 2.2.0

java - 如何在 IntelliJ 中使用 Netbeans Formatter?

java - 使用 Volley 调用多个服务