2017-06-25 11 views
1

DataFrameWriter csvメソッドを使用してDataset<Row>をcsvファイルに書き込むとき、すべての文字列フィールドがデフォルトでトリミングされます。たとえば、列のための :DataFrameWriter.csv()CSVファイルへの書き込み時にデータセット<Row>のトリミング

" 0"," Shop "," CA" 

それのように書いている:csvファイルで

"0","Shop","CA" 

私はオプションを使用している:

dataFrame.write() 
    .format("csv") 
    .option("header", "false") 
    .option("dateFormat", "yyyy-MM-dd") 
    .option("sep", ",") 
    .option("ignoreLeadingWhiteSpace", "false") 
    .option("ignoreTrailingWhiteSpace","false")     
    .option("escape", "\"") 
    .option("quoteALL","true") 
    .save(path); 

をしかし、まだそれはフィールドをトリミングされています。 フィールドをトリムしないようにしたい。 誰も私に助けてくれますか?

答えて

0

は別の方法は次のようtext(path)またはsave(path)(最後に呼び出される?

があってはならない作業を、他のオプションはありますか?野生の推測では、それが秩序とは何かを持っているである。

+0

テキスト(パス)は、文字列型の単一の列に対してのみ適用でき、複数の列があります。私はsave(path)のみを使用しています:私は質問にその部分を追加するのを忘れました。私のコードの一部である: dataFrame.write() .format( "CSV") .OPTION( "ヘッダ"、 "偽") .OPTION( "DATEFORMAT"、 "YYYY-MM-DD") .OPTION ( "sep"、 "、") .option( "ignoreLeadingWhiteSpace"、 "false") .option( "ignoreTrailingWhiteSpace"、 "false") .option( "エスケープ"、 "\" ") .option "quoteALL"、 "true")save(path); –

2

残念ながら、 、あなたは "F ... ソースコードを読む" RTFSC =に持って

私はここブランチ2.1にDataFrameWriterのソースを見つけました:。
https://github.com/apache/spark/blob/branch-2.1/sql/core/src/main/scala/org/apache/spark/sql/DataFrameWriter.scala

そして

あなたは書き込み CSVファイル
sep ... quote ... escapeのために、以下のCSV固有のオプション(複数可)を設定することができます...コメント状態... escapeQuotes ... quoteAll ... header ... nullValue ... compression ... dateFormat ... timestampFormat

ignoreTrailingWhiteSpaceのためのあなたの設定は無視されている理由です


は - DataFrameReaderを経て、 CSVファイルを読み込むとき、彼らはのみ適用されます。


この時点で、 の引用符を試してみる必要があります。
あなたの例ではすでにどこでも引用符が表示されていますが、デフォルトではfalseである quoteAllを強制しません。本当に困惑している。

私の提案:自動はを引用せずにCSV として結果を保存し、その後、値の周り明示的引用符文字を追加することによって、あなたはトリミングされていない保持したい列を変換します。

+0

申し訳ありませんが、コード内にquoteALLを追加するのを忘れてしまいました。私はすでに使用していますので、すべてのフィールドで必要です。 、同じコードは、ここでトリミングするフィールドをトリミングしていません。各文字列フィールドのトリミングを避ける方法はありますか? –

+0

私は手がかりがありません。トリミングは、CSVまたはJSON _ (テキストエディタで)_または寄木細工_(別のSparkコマンドでそれを読み返す必要があります)_? –

関連する問題