齐柏林飞艇段落中的Scala println()无法打印,而常规print()可以很好地打印

时间:2019-06-05 13:20:34

标签: scala apache-spark apache-zeppelin

在齐柏林飞艇笔记本电脑上,使用工作火花/ scala解释器,我正在尝试执行最简单的任务:

println("Hello World");

当我运行它时,输出部分空白(什么都没有!)。
另一方面,当我仅使用

print("Hello World");

没有 ln ,它会打印OK。
任何想法?预先感谢。

1 个答案:

答案 0 :(得分:0)

对我来说,这种外观与驱动程序或执行程序中的stdout有关,而与所使用的特定指令无关(因为在这种情况下,这确实很奇怪)。

至少我的齐柏林飞艇实例(我在EMR上)仅是驱动程序标准输出中的打印语句,因此在哪里打印是重要的。

我有一个类似的问题,但这是因为我的打印位于foreach数据框内,因此在执行程序中执行,而不在驱动程序中执行。

例如:

val dataset = spark.read.parquet(...)

println("This will be appeard")

dataset.foreach(println(_))
 //you won't see this since the print will happen in the executors


dataset.take(1).foreach(println(_))
//you should see this since happen in the driver after collecting the result

尝试看看您是否正在做类似的事情。