scala中rdd.map内的迭代查找

scala中rdd.map内的迭代查找,scala,apache-spark,rdd,Scala,Apache Spark,Rdd,这是我的职责 我正试图在rdd中使用它,如下所示: def retrieveindex (stringlist: List[String], lookuplist: List[String]) = stringlist.foreach(y => lookuplist.indexOf(y)) 但是,我得到的输出是空的。没有错误,但retrieveindex的输出为空。当我使用println查看检索是否正确时,我确实看到了打印的索引。有没有办法做到这一点?我是否应该首先将功能“分配”给

这是我的职责

我正试图在rdd中使用它,如下所示:

def retrieveindex (stringlist: List[String], lookuplist: List[String]) = 
  stringlist.foreach(y => lookuplist.indexOf(y))

但是,我得到的输出是空的。没有错误,但retrieveindex的输出为空。当我使用println查看检索是否正确时,我确实看到了打印的索引。有没有办法做到这一点?我是否应该首先将功能“分配”给所有员工?我是新手。

retrieveindex
的返回类型为
Unit
(因为
foreach
只应用函数
(字符串)⇒ 单元
(每个元件上)。因此,它不映射到任何东西

您可能希望它返回索引列表,如:

val libsvm = libsvmlabel.map(x => 
  Array(x._2._2,retrieveindex(x._2._1.toList,featureSet.toList)))

retrieveindex
的返回类型为
Unit
(因为
foreach
只应用函数
(字符串)⇒ 单元
(每个元件上)。因此,它不映射到任何东西

您可能希望它返回索引列表,如:

val libsvm = libsvmlabel.map(x => 
  Array(x._2._2,retrieveindex(x._2._1.toList,featureSet.toList)))

你搞定了-是的,我想问题出在返回型单位上,但不知道如何解决它。非常感谢。你搞定了-是的,我认为问题出在返回式装置上,但不知道如何解决。非常感谢。