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



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

DistribuitedCache.getLocalCacheFiles(context.getConfiguration())

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

您可以使用 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 "files" 参数,例如,这里:

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

最新更新