在Apache Spark中,您可以使用 sc.addFile (sc是您的默认SparkContext)上传文件,并使用 SparkFiles.get 获取工作人员的路径.因此,SparkFiles解析通过 SparkContext.addFile()添加的文件的路径.
SparkFiles包含以下classmethods :
get(filename)
getrootdirectory()
让我们详细了解它们.
get(filename)
它指定通过SparkContext.addFile()添加的文件的路径.
getrootdirectory()
它指定根目录的路径,其中包含通过SparkContext.addFile()添加的文件.
--------------------------------- ------- sparkfile.py ------------------------------------ from pyspark import SparkContextfrom pyspark import SparkFilesfinddistance = "/home/hadoop/examples_pyspark/finddistance.R"finddistancename = "finddistance.R"sc = SparkContext("local", "SparkFile App")sc.addFile(finddistance)print "Absolute Path -> %s" % SparkFiles.get(finddistancename)------------------------------------ ---- sparkfile.py ------------------------------------
命令 : 命令如下 :
$ SPARK_HOME/bin/spark-submit sparkfiles.py
输出 : 上述命令的输出为 :
Absolute Path -> /tmp/spark-f1170149-af01-4620-9805-f61c85fecee4/userFiles-641dfd0f-240b-4264-a650-4e06e7a57839/finddistance.R