2017-04-12 44 views
0

我在主節點中有一個應該由每個節點讀取的文件。我怎樣才能使這成爲可能?在Hadoop的MapReduce中,我使用了Spark從每個節點讀取文件與Hadoop的DistribuitedCache相似

DistribuitedCache.getLocalCacheFiles(context.getConfiguration()) 

Spark如何在節點間共享文件?我是否必須在RAM和廣播變量中加載文件?或者我只能在SparkContext配置中指定(絕對?)文件路徑,並且它可以立即用於所有節點?

回答

0

您可以使用SparkFiles從分佈式緩存中讀取文件。

import org.apache.spark.SparkFiles 
import org.apache.hadoop.fs.Path 

sc.addFile("/path/to/file.txt") 
val pathOnWorkerNode = new Path(SparkFiles.get("file.txt"))