Как подавить печать переменных значений в 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
, тогда вы получите желаемое поведение, выводящее только явные инструкции печати.
Смотрите также: https://issues.apache.org/jira/browse/ZEPPELIN-688
Ответ 2
Вы также можете попробовать добавить фигурные скобки вокруг вашего кода.
{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();