2014-08-29 66 views
1

我想使用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; 
}    

});

+0

這是什麼意思,在這裏處理文件? – 2014-08-29 22:56:06

+0

@SeanOwen基本上,我通過應用一些轉換來創建對應的RDD(每行)的豐富版本,然後將結果寫入輸出目錄 – Aminouvic 2014-08-30 00:03:05

+0

那麼當你完成後你怎麼不知道?你的代碼完成手動寫入文件否? – 2014-08-30 07:19:55

回答

0

您無法保證輸入是由HDFS文件支持的。但看起來你不需要這樣的問題。您創建一個新文件並寫入一些內容。寫入完成後,就完成了。將其與其他HDFS API一起移動。

+0

其實我需要移動原始文件(用於生成RDD的文件) – Aminouvic 2014-08-30 16:52:15