2015-06-25 2 views
6

В Hadoop вы можете использовать распределенный кеш для копирования файлов только для чтения на каждом узле. Каков эквивалентный способ сделать это в Spark? Я знаю о вещательных переменных, но это полезно только для переменных, а не для файлов.Эквивалент распределенного кэша в искры?

+0

почему вы можете загрузить файл в списке или на карте, а затем транслировать его ?? – banjara

ответ

5

Посмотрите на SparkContext.addFile()

Добавить файл, который нужно загрузить с этой Спарк работы на каждом узле. Пройденный путь может быть либо локальным файлом, либо файлом в HDFS (или другими поддерживаемыми Hadoop файловыми системами), либо HTTP, HTTPS или FTP URI. Чтобы получить доступ к файлу в Spark-заданиях, используйте SparkFiles.get (имя_файла), чтобы найти его местоположение для загрузки.

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

+0

Будет ли он работать с S3 Amazon? – MetallicPriest

+1

Не уверен на 100%, но я считаю, что он (не может проверить его прямо сейчас). Spark возвращается к пути Hadoop для URI без http/ftp: https://github.com/apache/spark/blob/43f50decdd20fafc55913c56ffa30f56040090e4/core/src/main/scala/org/apache/spark/SparkContext.scala#L1325 и Я думаю, что он обрабатывает URI S3. –

-3

если файлы представляют собой текстовые файлы, живущие в HDFS, то вы можете использовать:

textFile("<hdfs-path>") из "SparkContext".

этот вызов даст вам RDD, который вы можете сохранить через узлы, используя метод: «persist()» этого RDD.

Этот метод может сохранять данные файла (сериализованные/десериализованные) в пределах MEMORY/DISK.

относятся:

http://spark.apache.org/docs/latest/programming-guide.html#which-storage-level-to-choose

+0

Это не помещает файл на каждый узел. Он распределяет его по узлам. –

+0

@ TheArchetypalPaul: да, вы правы. Я упустил требование и предложил persist(), который просто касается отдельного раздела RDD, вместо копирования всего файла на каждом узле кластера. –

Смежные вопросы