我在主节点中有一个文件,每个节点都应该读取该文件。我怎样才能做到这一点?在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 作业