Каковы файлы, созданные Spark при использовании "saveAsTextFile"?

Когда я запускаю задание Spark и сохраняю вывод в виде текстового файла, используя метод "saveAsTextFile", как указано в https://spark.apache.org/docs/0.9.1/api/core/index.html#org.apache.spark.rdd.RDD:

enter image description here

здесь создаются файлы:

enter image description here

Является ли файл .crc Cyclic Redundancy Check file? и поэтому используется для проверки правильности содержимого каждого сгенерированного файла?

Файл _SUCCESS всегда пуст, что это означает?

В файлах, которые не имеют расширения на скриншоте выше, содержатся фактические данные из RDD, но почему многие файлы генерируются вместо одного?

Ответ 1

Это файлы, созданные базовым API Hadoop, который вызывает Spark при вызове saveAsTextFile().

  • part- files: Это ваши файлы выходных данных.

    У вас будет один файл part- для каждого раздела в RDD, на который вы вызвали saveAsTextFile(). Каждый из этих файлов будет выписан параллельно, до определенного предела (как правило, количество ядер для рабочих в вашем кластере). Это означает, что вы будете писать свой результат намного быстрее, чтобы он был выписан, если бы все они были помещены в один файл, предполагая, что ваш уровень хранения может обрабатывать пропускную способность.

    Вы можете проверить количество разделов в вашем RDD, которое должно рассказать вам, сколько ожидаемых файлов part- выглядит следующим образом:

    # PySpark
    # Get the number of partitions of my_rdd.
    my_rdd._jrdd.splits().size()
    
  • _SUCCESS file: наличие пустого файла _SUCCESS просто означает, что операция выполнена нормально.

  • .crc files: Я раньше не видел файлы .crc, но да, предположительно, они проверяют файлы part-.