带有 RDD foreach 的 Zeppelin Spark println 未在笔记本上显示

Zeppelin Spark println with RDD foreach does not shown on notebook

我将 Zeppelin 与 Spark (Scala) 结合使用

val sparkLicTextFilePath = "/home/tt/Software/spark-2.3.2-bin-hadoop2.7/LICENSE"

val licLines = sc.textFile(sparkLicTextFilePath)

licLines.foreach(line=>println(line))

但是,到目前为止,笔记本中没有打印任何内容。我确实尝试使用 .collect() 来查看 RDD 是否为空。 RDD 正常并正确加载文件。

这是 Zeppelin 笔记本截图

还有一些关于 Zeppelin 和 spark 版本的信息

飞艇 0.8.0

Spark 2.3.2

尝试打印几行 licLines 而不是全部。 可能是 zeppelin 无法打印整个文件。

尝试:

val fewLicLines = licLines.take(5)
fewLicLines.foreach(line=>println(line))

我遇到了类似的问题。

%spark
import org.apache.commons.io.IOUtils
import java.net.URL
import java.nio.charset.Charset

val rdd = sc.textFile("some/file")
val rdd1 = rdd.map(s => s.split(",")).map(l => (l(2), 1)).reduceByKey(_ + _)
val rdd6 = rdd1.map(a=>(a._2,a._1)).sortByKey(ascending = false)

// this line shows blank
rdd6.collect().foreach(println)
// this also does not print
println("hello from scala")

//this works, but is DF not RDD
rdd6.toDF().show(200)

查了一下,发现是Zeppelin版本(zeppelin-0.8.1-bin-all)的问题。有一个错误在下一个版本中得到修复,因此我切换到版本 0.8.2.

这对我有用。