当我将完全相同的代码复制到 REPL 中时,它可以工作,但在 scala 的 Spark shell 中,它会写入文本文件,但不是在单独的行上。
val out = new PrintWriter("TestAverages.txt")
for(i <- 0 to 10) out.println(i)
out.close()
它给了我12345678910火花,但是代码在 scala repl 中有效。
我知道
是什么原因造成的,现在你提到你使用了Windows。PrintWriter.println 的行为:行分隔符字符串由系统属性 line.separator
定义,不一定是单个换行符。
所以与其写:
for(i <- 0 to 10) out.println(i)
同样去:
for(i <- 0 to 10) out.print(i + "rn")
回想一下,我添加了"\r",这意味着 CR+LF,因此将打印出的换行符不依赖于平台。