Spark从每个节点读取文件,类似于Hadoop的DistribuitedCache

时间:2017-04-12 08:15:53

标签: file apache-spark slave

我在主节点中有一个文件,应该由每个节点读取。我怎样才能做到这一点?在Hadoop的MapReduce中,我使用了

DistribuitedCache.getLocalCacheFiles(context.getConfiguration())

Spark如何在节点之间共享文件?我是否必须在RAM和广播变量中加载文件?或者我只能在SparkContext配置中指示(绝对?)文件路径,它是否可以立即用于所有节点?

2 个答案:

答案 0 :(得分: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"))

答案 1 :(得分:0)

查看spark-submit"文件"参数,例如,这里:

Running Spark jobs on a YARN cluster with additional files