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中的一行數據就可以返回多行數據了。