如何在齐柏林飞艇中抑制变量值的打印
How to suppress printing of variable values in zeppelin
给定以下代码段:
val data = sc.parallelize(0 until 10000)
val local = data.collect
println(s"local.size")
Zeppelin 将 local
的全部值打印到笔记本屏幕上。如何改变这种行为?
Zeppelin 以及 spark-shell REPL,始终打印整个解释器输出。
如果您真的只想打印 local.size 字符串 - 最好的方法是将 println "local.size"
语句放在单独的段落中。
然后您可以使用右上角的小 "book" 图标隐藏上一段的所有输出。
我为避免这种情况所做的是定义一个顶级函数,然后调用它:
def run() : Unit = {
val data = sc.parallelize(0 until 10000)
val local = data.collect
println(local.size)
}
run();
您也可以尝试在代码周围添加大括号。
{val data = sc.parallelize(0 until 10000)
val local = data.collect
println(s"local.size")}
从 0.6.0 开始,Zeppelin 在 spark 的解释器配置(可通过 GUI 访问)中提供了一个布尔标志 zeppelin.spark.printREPLOutput
,默认设置为 true
。
如果将其值设置为 false
,那么您将获得所需的行为,即仅输出显式打印语句。
FWIW,这似乎是新行为。
直到最近我们一直在使用 Livy 0.4,它只输出最后语句的内容(而不是回显整个脚本的输出)。
当我们升级到 Livy 0.5 时,行为更改为输出整个脚本。
虽然拆分段落和隐藏输出确实有效,但这似乎是 Zeppelin 可用性的不必要开销。
例如,如果您需要刷新输出,那么您必须记住 运行 两段(即设置输出的那一段和包含实际 println 的那一段)。
恕我直言,此方法存在其他可用性问题,再次恕我直言,Zeppelin 使用起来不太直观。
有人已将此 JIRA 票记录到地址 "the problem",请为它投票:
LIVY-507
我使用的一个简单技巧是定义
def !() ="_ __ ___ ___________________________________________________"
并用作
$bang
高于或接近我要检查的代码
并且有效
res544: String = _ __ ___ ___________________________________________________
然后我就把注释掉了;)
// 希望对您有所帮助
给定以下代码段:
val data = sc.parallelize(0 until 10000)
val local = data.collect
println(s"local.size")
Zeppelin 将 local
的全部值打印到笔记本屏幕上。如何改变这种行为?
Zeppelin 以及 spark-shell REPL,始终打印整个解释器输出。
如果您真的只想打印 local.size 字符串 - 最好的方法是将 println "local.size"
语句放在单独的段落中。
然后您可以使用右上角的小 "book" 图标隐藏上一段的所有输出。
我为避免这种情况所做的是定义一个顶级函数,然后调用它:
def run() : Unit = {
val data = sc.parallelize(0 until 10000)
val local = data.collect
println(local.size)
}
run();
您也可以尝试在代码周围添加大括号。
{val data = sc.parallelize(0 until 10000)
val local = data.collect
println(s"local.size")}
从 0.6.0 开始,Zeppelin 在 spark 的解释器配置(可通过 GUI 访问)中提供了一个布尔标志 zeppelin.spark.printREPLOutput
,默认设置为 true
。
如果将其值设置为 false
,那么您将获得所需的行为,即仅输出显式打印语句。
FWIW,这似乎是新行为。 直到最近我们一直在使用 Livy 0.4,它只输出最后语句的内容(而不是回显整个脚本的输出)。
当我们升级到 Livy 0.5 时,行为更改为输出整个脚本。
虽然拆分段落和隐藏输出确实有效,但这似乎是 Zeppelin 可用性的不必要开销。 例如,如果您需要刷新输出,那么您必须记住 运行 两段(即设置输出的那一段和包含实际 println 的那一段)。
恕我直言,此方法存在其他可用性问题,再次恕我直言,Zeppelin 使用起来不太直观。
有人已将此 JIRA 票记录到地址 "the problem",请为它投票: LIVY-507
我使用的一个简单技巧是定义
def !() ="_ __ ___ ___________________________________________________"
并用作
$bang
高于或接近我要检查的代码 并且有效
res544: String = _ __ ___ ___________________________________________________
然后我就把注释掉了;)
// 希望对您有所帮助