【发布时间】:2015-01-03 01:41:35
【问题描述】:
在我的项目中,我有三个输入文件并将文件名设置为 args(0) 到 args(2),我还有一个输出文件名作为 args(3),在源代码中,我使用
val sc = new SparkContext()
var log = sc.textFile(args(0))
for(i <- 1 until args.size - 1) log = log.union(sc.textFile(args(i)))
我没有对日志做任何事情,而是通过使用将其保存为文本文件
log.coalesce(1, true).saveAsTextFile(args(args.size - 1))
但它仍然保存为 3 个文件,分别为 part-00000、part-00001、part-00002,那么有什么方法可以将三个输入文件保存到一个输出文件中?
【问题讨论】:
-
这是您的完整程序吗?看起来不错,您应该在输出目录中有一个文件
part-00000和_SUCCESS。请注意,saveAsTextFile的参数实际上是一个目录名称,用于保存输出。 -
非常感谢您的回复!事实上,我对日志做了一些操作。刚才试了一下,发现很有用,可能是我的项目出了点问题,我去看看!
-
我自己也试过了,结果只有一个输出。你是在本地运行 Spark 还是在集群中运行?
标签: scala apache-spark