2017-04-12 79 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")) 
相关问题