Не видеть RDD Spark после сохранения

Я использую Spark 1.2.0 и не настроил SPARK_LOCAL_DIRS явно, поэтому предполагаю, что сохраненные RDD перейдут в /tmp. Я пытаюсь сохранить и RDD, используя следующий код:

    val inputRDD=sc.parallelize(List(1,2,3,3,4,5,6,7,8,9,19,22,21,25,34,56,4,32,56,70))
    val result = inputRDD.map(x=>x*x)
    println("Result count is: "+result.count())
    result.persist(StorageLevel.DISK_ONLY)
    println(result.collect().mkString(",,"))
    println("Result count is: "+result.count()) 

Я заставляю count() на моем RDD до и после сохранения, просто чтобы быть уверенным, но я все еще не вижу никаких новых файлов или каталогов в /tmp. Единственный каталог, который меняется, когда я запускаю свой код, - это hsperfdata.... который, как я знаю, предназначен для данных производительности JVM.

Куда идут мои постоянные RDD?


person Jimit Raithatha    schedule 18.10.2015    source источник
comment
какие у вас конфигурации кластера?   -  person eliasah    schedule 18.10.2015
comment
Я не настроил кластер как таковой. Используя IntelliJ для Scala, я только что связал библиотеки Spark с моим проектом. Я все еще учусь, поэтому еще не удосужился настроить файл spark-env.sh.   -  person Jimit Raithatha    schedule 18.10.2015
comment
Начните читать официальную документацию! Я считаю, что у вас отсутствует какое-то базовое понимание концепции.   -  person eliasah    schedule 18.10.2015


Ответы (1)


Из scaladoc RDD. сохранить()

Установите уровень хранения этого RDD, чтобы его значения сохранялись между операциями после первого вычисления. Это можно использовать только для назначения нового уровня хранения, если для RDD еще не установлен уровень хранения. Местный контрольно-пропускной пункт является исключением.

Итак, вы вызвали result.count() в строке выше result.persist(), к тому времени Spark уже установил сохраняемость results по умолчанию. Удалите эту операцию count и повторите попытку.

person mehmetminanc    schedule 18.10.2015
comment
Я нашел проблему. Поскольку я использовал IDE, мой SparkContext уничтожался в конце программы, очищая все данные вместе с ним. После того, как я попытался сохраниться в командной строке (сохраняя контекст, я мог видеть RDD) - person Jimit Raithatha; 24.10.2015
comment
Я не думаю, что ожидается, что постоянные RDD будут работать после запуска вашей программы, в REPL это имеет смысл, но при запуске Scala в IDE это имеет смысл, когда программа будет завершена. Проверьте журналы, вы, вероятно, увидите, если очистка в конце. Вам нужно экспортировать текстовый файл (или HDFS и т.д.). - person JimLohse; 24.02.2016