df.show() 不打印到文件



我有一个应用程序步骤的日志,并希望将"df.show(5("的结果打印到文件中,作为进程接收的数据样本。

我找到了这个解决方案,它允许我将"show"的结果存储到字符串中。字符串可以很好地打印到控制台中,但是当我尝试将其写入文件时,我得到的只是一个空白行。

这是我指示该字符串写入文件的地方,但没有给出任何错误,并且文件上的结果行为空:

def writeLineOnFile(input: String, path: String): Unit = {
val file = new File(path)
val fw = new FileWriter(file, true)
try {
fw.write( input)
}
finally fw.close()
}

一段用于尝试将 df.show 的输出转换为可打印字符串的代码,但在文件中显示为空:

def getOutAsString(input: Unit): String ={
val oldPs = Console.out
val baos = new ByteArrayOutputStream()
val ps =  new java.io.PrintStream(baos);
Console.withOut(ps) {
input
}
new String(baos.toByteArray)
}

也许可以试试这个:

/**
* write a `String` to the `path`.
*/
def writeLineOnFile(input: String, path: String): Unit = {
val file = new File(path)
val bw = new BufferedWriter(new FileWriter(file))
bw.write(input)
bw.close()
}

最新更新