从Spark(scala)获取结果并将其传递给另一个进程

时间:2015-12-22 22:55:46

标签: scala apache-spark

一般来说,如何在不输出文件的情况下从spark作业中提取结果?

比方说,我有一个scala程序可以创建一个Spark启动器工作。

我可以用Futures包装这个火花作业。一旦火花工作完成,我怎样才能得到结果? (我之前做过的方法是将spark结果写入文件,然后外部scala程序读取文件。< - 我想避免这种策略)

1 个答案:

答案 0 :(得分:0)

对于小结果集,使用RDD.collect()将数据集的所有元素作为数组返回到驱动程序。

def collect(): Array[T]   

然后
打印到标准输出作为管道输入,例如RDD.collect()。foreach(print_to_stout)

或者按照Sumit的建议,通过以下API将每个元素写入外部消息传递系统:

def foreach(f: (T) ⇒ Unit): Unit