我想使用Spark Streaming(1.1.0-rc2 Java-API)来处理一些文件,并在处理成功完成后移动/重命名它们,以便将它们推送到其他工作。Apache Spark移动/重命名成功处理的文件
我想过如何使用生成的RDD名称中包含的文件路径(newAPIHadoopFile),但我们如何确定文件处理的成功结束?
也不确定这是正确的方式来实现它,所以任何想法都是值得欢迎的。
编辑: 下面是一些伪代码更加清楚:
logs.foreachRDD(new Function2<JavaRDD<String>, Time, Void>() {
@Override
public Void call(JavaRDD<String> log, Time time) throws Exception {
String fileName=log.name();
String newlog=Process(log);
SaveResultToFile(newlog, time);
//are we done with the file so we can move it ????
return null;
}
});
这是什么意思,在这里处理文件? – 2014-08-29 22:56:06
@SeanOwen基本上,我通过应用一些转换来创建对应的RDD(每行)的丰富版本,然后将结果写入输出目录 – Aminouvic 2014-08-30 00:03:05
那么当你完成后你怎么不知道?你的代码完成手动写入文件否? – 2014-08-30 07:19:55