我想用 mapPartitions
但得到以下错误。
[error] found : Unit
[error] required: Iterator[?]
[error] Error occurred in an application involving default arguments.
[error] rdd.mapPartitions(showParts)
我称之为 mapPartitions
功能如下。
rdd.mapPartitions(showParts)
哪里 showParts
函数定义如下。
def showParts(iter: Iterator[(Long, Array[String])]) =
{
while (iter.hasNext)
{
val cur = iter.next;
// Do something with cur
}
}
正确的使用方法是什么 mapPartitions
在这里?
2条答案
按热度按时间vmjh9lq91#
你需要归还一张支票
Iterator
从你的showParts
功能。vuktfyat2#
问题是你传递给的自定义项
mapPartitions
必须具有返回类型Iterator[U]
. 您当前的代码不返回任何内容,因此属于类型Unit
.如果你想得到一个空的
RDD
在执行mapPartitions
然后可以执行以下操作: