Как подавить печать переменных значений в zeppelin
С учетом следующего фрагмента:
val data = sc.parallelize(0 until 10000)
val local = data.collect
println(s"local.size")
Zeppelin распечатывает все значение local на экране ноутбука. Как можно изменить это поведение?
Ответ 1
Начиная с 0.6.0, Zeppelin предоставляет логический флаг zeppelin.spark.printREPLOutput в конфигурации искрового интерпретатора (доступный через GUI), который по умолчанию установлен на true.
Если вы установите значение false, тогда вы получите желаемое поведение, выводящее только явные инструкции печати.
Вы также можете попробовать добавить фигурные скобки вокруг вашего кода.
{val data = sc.parallelize(0 until 10000)
val local = data.collect
println(s"local.size")}
Ответ 3
Zeppelin, а также искровая оболочка REPL всегда печатает весь вывод интерпретатора.
Если вы действительно хотите напечатать только строку local.size, лучшим способом сделать это - поставить оператор println "local.size" внутри отдельного абзаца.
Затем вы можете скрыть весь вывод предыдущего абзаца с помощью маленькой иконки "книга" в правом верхнем углу.
Ответ 4
Что я делаю, чтобы избежать этого, это определить функцию верхнего уровня, а затем вызвать ее:
def run() : Unit = {
val data = sc.parallelize(0 until 10000)
val local = data.collect
println(local.size)
}
run();