如何在Scala中将DataFrame模式写入文件

5
我有一个从大型json文件加载并从中获取模式的DataFrame。该模式基本上围绕着1000列。我希望将printSchema的相同输出保存在文件中,而不是控制台。
有什么想法吗?
2个回答

10

如果您是在本地环境下工作,您可以执行以下操作:

val filePath = "/path/to/file/schema_file"
new PrintWriter(filePath) { write(df.schema.treeString); close }

如果您使用的是HDFS,则需要提供一个URI。


2
这是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

所以你不能做太多事情,但我有一个解决办法可以适用于你的情况。将输出流设置为文件流,这样它就会打印到你的文件中。
类似于这样:
 val out = new PrintStream(new FileOutputStream("output.txt"));
System.setOut(out);

我希望我能解决你的问题!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接