提问者:小点点

Spark从每个节点读取文件,类似于Hadoop的分布式缓存


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

DistribuitedCache.getLocalCacheFiles(context.getConfiguration())

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


共2个答案

匿名用户

您可以使用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"))

匿名用户

以spark-submit上的"文件"参数为例,这里:

在具有其他文件的 YARN 群集上运行 Spark 作业