PySpark SparkFiles
在Apache Spark中,你可以使用 sc.addFile 上传你的文件(sc是你默认的SparkContext),并使用 SparkFiles.get 在worker上获得路径 。 因此,SparkFiles解决了通过 SparkContext.addFile() 添加的文件的路径 。
SparkFiles包含以下类方法:
- get(filename)
- getrootdirectory()
让我们来详细了解一下它们。
get(filename)
它指定了通过SparkContext.addFile()添加的文件的路径。
getrootdirectory()
它指定了根目录的路径,该目录包含了通过SparkContext.addFile()添加的文件。
----------------------------------------sparkfile.py------------------------------------
from pyspark import SparkContext
from pyspark import SparkFiles
finddistance = "/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