将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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |