2015-11-07 133 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