Как найти все текстовые файлы, загруженные в текущем контексте искры? - PullRequest
0 голосов
/ 18 мая 2019

Например, когда я нахожусь в Spark Shell с помощью PySpark, я могу загрузить файл в контекст spark с помощью следующей команды:

readme = sc.textFile("/home/data/README.md")

Затем я могу выполнить действия с этим СДР (?), как показано ниже для подсчета количества строк в файле:

readme.count() 

Однако я хочу узнать, как мне получить список всех sc.textFile(s), которые я загрузил в sc (контекст контекста)?

Например, есть команды, которые нравятся ниже, чтобы получить всю конфигурацию, но в ней не перечислены все текстовые файлы, которые я загрузил.

sc._conf.getAll() 

Есть ли способ найти все текстовые файлы, которые были загружены в контекст spark?Список?

1 Ответ

1 голос
/ 18 мая 2019

SparkContext.textFile не хранит ничего в контексте Spark.Взгляните на источники

  /**
   * Read a text file from HDFS, a local file system (available on all nodes), or any
   * Hadoop-supported file system URI, and return it as an RDD of Strings.
   * The text files must be encoded as UTF-8.
   *

. Вы всегда можете кэшировать свои RDD, чтобы сохранить их в памяти.Это сообщение объясняет механизм кэширования.

Если вы хотите отслеживать файлы в вашем задании на искру, spark-submit предоставляет флаг --files для загрузки файлов в каталоги выполнения.Если у вас есть небольшие файлы, которые не изменяются.

Если вы добавляете внешние файлы, spark-submit предоставляет флаг --files

spark-submit --files, ваши файлы будут загружены в эту папку HDFS.: hdfs: //your-cluster/user/your-user/.sparkStaging/application_1449220589084_0508

application_1449220589084_0508 - это пример идентификатора приложения пряжи!

В приложении Spark вы можете найти свои файлы2 способами:

1 - найдите каталог промежуточной обработки по следующему коду: (но вам нужно указать hdfs uri и ваше имя пользователя)

System.getenv("SPARK_YARN_STAGING_DIR"); 

.sparkStaging / application_1449220589084_0508

2 - найдите полные пути к файлам через запятую, используя:

System.getenv("SPARK_YARN_CACHE_FILES"); 

hdfs: //yourcluster/user/hdfs/.sparkStaging/application_1449220589084_0508/spark-Узел-1.4.1.2.3.2.0-2950-hadoop2.7.1.2.3.2.0-2950.jar # * * 1 034 * искра * .jar тысяча тридцать-пять, HDFS: //yourcluster/user/hdfs/.sparkStaging/application_1449220589084_0508/your-spark-job.jar # приложение .jar, HDFS: //yourcluster / user / hdfs / .sparkStaging / application_1449220589084_0508 / test_file.txt # test_file.txt

...