PySpark - SparkFiles

No Apache Spark, você pode fazer upload de seus arquivos usando sc.addFile (sc é o SparkContext padrão) e obtenha o caminho em um trabalhador usando SparkFiles.get. Assim, SparkFiles resolve os caminhos para arquivos adicionados por meio deSparkContext.addFile().

SparkFiles contém os seguintes métodos de classe -

  • get(filename)
  • getrootdirectory()

Vamos entendê-los em detalhes.

obter (nome do arquivo)

Ele especifica o caminho do arquivo adicionado por meio de SparkContext.addFile ().

getrootdirectory ()

Ele especifica o caminho para o diretório raiz, que contém o arquivo adicionado por meio de 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 - O comando é o seguinte -

$SPARK_HOME/bin/spark-submit sparkfiles.py

Output - A saída para o comando acima é -

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