PySpark - SparkFiles

In Apache Spark, puoi caricare i tuoi file usando sc.addFile (sc è il tuo SparkContext predefinito) e ottieni il percorso su un worker usando SparkFiles.get. Pertanto, SparkFiles risolve i percorsi dei file aggiunti tramiteSparkContext.addFile().

SparkFiles contengono i seguenti metodi di classe:

  • get(filename)
  • getrootdirectory()

Cerchiamo di capirli in dettaglio.

get (nome file)

Specifica il percorso del file aggiunto tramite SparkContext.addFile ().

getrootdirectory ()

Specifica il percorso della directory root, che contiene il file aggiunto tramite 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------------------------------------

Command - Il comando è il seguente -

$SPARK_HOME/bin/spark-submit sparkfiles.py

Output - L'output per il comando precedente è -

Absolute Path -> 
   /tmp/spark-f1170149-af01-4620-9805-f61c85fecee4/userFiles-641dfd0f-240b-4264-a650-4e06e7a57839/finddistance.R