def retrieveindex (stringlist: List[String], lookuplist: List[String]) =
stringlist.foreach(y => lookuplist.indexOf(y))
是我的功能。
我试图在这样的rdd中使用它:
val libsvm = libsvmlabel.map(x =>
Array(x._2._2,retrieveindex(x._2._1.toList,featureSet.toList)))
但是,我得到一个空的输出。没有错误,但来自retrieveindex的输出为空。当我使用println查看我是否正确检索时,我确实看到了索引打印。有没有办法做到这一点?我应该先分发'对所有工人的作用?我是新手。
答案 0 :(得分:3)
retrieveindex
的返回类型为Unit
(因为foreach
只在每个元素上应用函数(String) ⇒ Unit
)。因此它不会映射到任何东西。
您可能希望它返回索引列表,例如:
def retrieveindex(stringlist: List[String], lookuplist: List[String]): List[Int] =
stringlist.map(y => lookuplist.indexOf(y))