2016-07-01 10 views
2

巨大なjsonファイルから読み込んで、スキーマを取得するDataFrameがあります。スキーマは基本的に約1000列です。私は、コンソールの代わりにファイルに保存されるprintSchemaの同じ出力をします。DataFrameスキーマをScalaのファイルに書き込む方法

アイデア?

/** 
    * 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 

だから、あなたは多くを行うことはできませんが、私はその周りの仕事はあなたのケースで作業することができます:

答えて

4

ローカル環境で作業している場合は、次の操作を実行できます。

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

あなたはHDFS上にある場合は、URIを提供する必要があります。

+0

ありがとう、それは今treeStringメソッドのおかげで働いています。私はファイルへの書き込みに役立つこのリンクhttp://stackoverflow.com/questions/32380272/how-to-write-to-hdfs-using-scalaを使用しました。何らかの理由でPrintWriterが私に与えていたURIを検出しませんでした – Sarah

+0

@Sarah cool。問題を解決するために答えを受け入れることを忘れないでください! – eliasah

1

これはprintSchemaの本体()です。 アウトストリームをファイルストリームに設定して、ファイルに出力します。私はあなたのクエリを解決を願って、この

val out = new PrintStream(new FileOutputStream("output.txt")); 
System.setOut(out); 

よう

何か!

+0

treeStringは私が必要としていたものでした。ありがとうございました – Sarah

関連する問題