2015-11-07 130 views
-1

我有這樣的代碼:saveAsTextFile非RDD火花斯卡拉

def contentSizeStats(rdd: RDD[ApacheAccessLog]) = { 
    val contentSizes = rdd.map(x=>x.contentSize).cache() 
    val count = contentSizes.count() 
    if (count == 0) { null } 
    (count, contentSizes.reduce(_+_), contentSizes.min(), contentSizes.max()) 
} 

這個函數的返回值(長整型,字符串,字符串,字符串),我試圖挽救這個函數將結果文本文件使用saveAsTextFile和我不能因爲結果是不是一個RDD,任何想法如何實現這個?

+1

的【如何寫Scala中的一個文件?]可能的複製(http://stackoverflow.com/questions/4604237/how-to-write-to-a-file-in-scala) – zero323

回答

1

您可以將返回值轉換爲RDD,然後在其上調用saveAsTextFile

val outputRdd = sc.parallelize(outputTuple.productIterator.toArray) 
outputRdd.saveAsTextFile(outputDirectory) 
+0

感謝您的回覆,但函數的輸出不是數組,所以上述不會工作(我甚至嘗試過,類型不匹配) – Achillies57

+0

如何將元組首先轉換爲數組?你可以做'outputTuple.productIterator.toArray' – Prayag

+0

謝謝Prayag,像一個魅力.. – Achillies57