【发布时间】:2014-03-10 04:41:18
【问题描述】:
我正在编写一个 map reduce 应用程序 scala。直到地图功能一切正常。但是在编写减速器时我遇到了问题。
override def reduce(key: Text, values: java.lang.Iterable[Text],
context: ReducerContext) {
}
ReducerContext 被定义为引用上下文内部类,所以我在这里很好。
问题在于Iterable (Java) 组件。我无法遍历它。
我知道首先我将它转换为 scala Iterable 然后对其进行迭代,我也这样做了,但仍然没有得到结果。
我已经尝试过 scala.collection.JavaConverters._ 和 JavaConversions._ 这里有一些没有成功的扫描仪
val jit: java.util.Iterator[Text]= values.iterator()
val abc = JavaConversions.asScalaIterator(jit) /// val abc=jit.asScala
println("size "+ abc.size)// it displays proper size
for(temp <- abc){
///it dosent come inside this loop
}
同样,我尝试将此迭代器转换为列表/数组,但都是徒劳的。一旦我将其转换为列表/数组(toList/tiArray),结果列表/数组的大小变为 0。 无论我做什么我都无法彻底迭代
感谢您对此提供的任何帮助。
谢谢
【问题讨论】:
标签: java scala hadoop mapreduce