【发布时间】:2015-06-07 12:35:55
【问题描述】:
我有以下功能:-
def doSomething(line: RDD[(String, String)]): (String) = {
val c = line.toLocalIterator.mkString
val file2 = KeepEverythingExtractor.INSTANCE.getText(c)
(file2)
}
它的类型是org.apache.spark.rdd.RDD[(String, String)])String
我有一些文件存储在 hdfs 中,我必须访问如下:-
val logData = sc.wholeTextFiles("hdfs://localhost:9000/home/akshat/recipes/recipes/simplyrecipes/*/*/*/*")
它的类型是org.apache.spark.rdd.RDD[(String, String)]
我要根据doSomething函数映射这些文件
val mapper = logData.map(doSomething)
但是会出现这样的错误:-
<console>:32: error: type mismatch;
found : org.apache.spark.rdd.RDD[(String, String)] => String
required: ((String, String)) => ?
val mapper = logData.map(doSomething)
^
我已经在我的函数中定义了我应该有什么类型的输入和输出,并且我只根据它给出输入。
为什么会出现这个错误,我应该改变什么来纠正这个错误?
提前致谢!
【问题讨论】:
标签: scala apache-spark type-mismatch