加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

将Scala表达式转换为Java 1.8

发布时间:2020-12-16 09:58:33 所属栏目:安全 来源:网络整理
导读:我正在尝试将此 Scala表达式转换为 Java: val corpus: RDD[String] = sc.wholeTextFiles("docs/*.md").map(_._2) 这就是我在Java中所拥有的: RDDString corpus = sc.wholeTextFiles("docs/*.md").map(a - a._2); 但我在a._2上收到错误: 如果我采用“超级
我正在尝试将此 Scala表达式转换为 Java:

val corpus: RDD[String] = sc.wholeTextFiles("docs/*.md").map(_._2)

这就是我在Java中所拥有的:

RDD<String> corpus = sc.wholeTextFiles("docs/*.md").map(a -> a._2);

但我在a._2上收到错误:

如果我采用“超级”方法,这就是我所看到的:

package org.apache.spark.api.java.function;

import java.io.Serializable;

public interface Function<T1,R> extends Serializable {
        R call(T1 var1) throws Exception;
}

解决方法

在Scala中,PairRDD是一种元组类型,您可以使用_1和_2访问其成员.但是,Java没有内置元组,因此您必须使用方法来获取这些成员.它看起来应该是这样的,因为Java总是需要在任何函数上使用括号.

JavaRDD<String> corpus = sc.wholeTextFiles("docs/*.md").map(a -> a._2());

编辑:似乎在Scala中,一个隐式参数被传递给map方法,这意味着你必须在Java中显式传递它.有关Java Doc的信息,请参阅here;有关Scala文档,请参阅here.

编辑2:经过几个小时的摸索,找到了答案,它必须是JavaRDD.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读