map函数通常为1行数据处理得到1行数据,有时候需要rdd中的一条数据经过处理后可能需要返回一行以上的数据,有一种比较妥协的解决办法:
平时rdd的map函数返回的是一个tuple,也就是一行数据,现在可以将返回的类型设置为含有多个tuple元素ArrayBuffer,例如
比如我们现在有一个rdd叫 inputrdd
var newrdd: RDD[ArrayBuffer[(String, String, String)]] = inputrdd.map(r=>{
var rtn = ArrayBuffer[(String, String, String, String, String, String)]()
arrr.append(("aaa","bbb","ccc"))
arrr.append(("ddd","eee","fff"))
rtn
})
这样rdd中的一行数据就可以返回多行数据了。