2014-10-03 23 views
4

Apache Spark通常會輸出部分-00XXX文件。將它們合併或保留在存儲上的最佳做法是? (我使用谷歌雲存儲)我應該合併火​​花輸出文件嗎?

+0

你想,當他們準備好輸出文件做什麼? – 2014-10-04 01:30:36

+0

可能進一步火花處理。 – poiuytrez 2014-10-06 10:13:49

+2

如果是這樣的話,我會說他們保持原樣。它並沒有受到傷害,Spark將它們寫出來並行讀取。 – 2014-10-06 20:13:21

回答

0

我想這是一個選擇,但我會說不,因爲:

  • 如果你計算過大的數據文件合併並不容易,因爲你將獲得一個巨大的文件
  • 不同的文件可以對應RDD分區,因此您可以利用它進行進一步處理(如只讀取某些文件而不是所有文件的過濾)
  • 數據的進一步處理很容易因爲.textfile接受通配符爲*來讀取文件夾中的所有文本文件,所以不需要合併它們

希望這回答你的問題

0

我要說的是合併破裂分佈式計算的propice。您可能必須從同一文件標題讀取併發問題。

但是,如果你想進行快速分析,說Python的熊貓試試這個:

import org.apache.hadoop.conf.Configuration 
import org.apache.hadoop.fs._ 

def merge(srcPath: String, dstPath: String): Unit = { 
    val hadoopConfig = new Configuration() 
    val hdfs = FileSystem.get(hadoopConfig) 
    FileUtil.copyMerge(hdfs, new Path(srcPath), hdfs, new Path(dstPath), false, hadoopConfig, null) 
}