Как подавить печать переменных значений в 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();