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

时间:2016-07-01 05:35:16

标签: scala apache-spark dataframe apache-spark-sql

我有一个DataFrame,它从一个巨大的json文件加载并从中获取模式。架构基本上大约1000列。我希望将printSchema的相同输出保存在文件而不是控制台中。

有什么想法吗?

2 个答案:

答案 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);

我希望我解决了你的疑问!