我有一个DataFrame,它从一个巨大的json文件加载并从中获取模式。架构基本上大约1000列。我希望将printSchema的相同输出保存在文件而不是控制台中。
有什么想法吗?
答案 0 :(得分:6)
如果您在本地环境中工作,则可以执行以下操作:
val filePath = "/path/to/file/schema_file"
new PrintWriter(filePath) { write(df.schema.treeString); close }
如果您使用的是HDFS,则需要提供URI。
答案 1 :(得分:1)
这是printSchema()的主体:
/**
* Prints the schema to the console in a nice tree format.
* @group basic
* @since 1.3.0
*/
// scalastyle:off println
def printSchema(): Unit = println(schema.treeString)
// scalastyle:on println
所以你做不了多少,但我有一个可以在你的情况下工作的工作。 将输出流设置为文件Stream,以便将其打印到您的文件中。
像这样的东西
val out = new PrintStream(new FileOutputStream("output.txt"));
System.setOut(out);
我希望我解决了你的疑问!