2017-05-19 27 views
0

私は二重引用符で区切られたタイムスタンプと電子メールフィールドを持つCSVファイルを持っています。Talendの二重引用符で区切られた列のCSVをインポートすると無視されます

Timestamp,Email 
"2017-01-01 00:00:01",[email protected] 
"2017-01-01 00:02:31",[email protected] 

私はCSVファイルのメタデータソースを定義しており、2つの列を正しく識別して入力できました。しかし、私がパッケージを実行すると、タイムスタンプの列が存在しないかのように扱われます(通常は、 'Unparseable date:[email protected]' ')。

私はtFileInputDelimitedをエスケープとテキストエンクロージャーのオプションを含む設定の数と日付と文字列の両方としてタイムスタンプをインポートする(文字列としてインポートすると、タイムスタンプフィールドには電子メールアドレスがあり、電子メールアドレスは空白になります)。二重引用符で区切られたタイムスタンプ列の存在を認識するようにインポートを取得します。

私はタイムスタンプの値全体をエスケープする何かをしたと仮定していますが、それは何かを考えることはできません。あなたが本当にあなたの入力ファイルにタイムスタンプの周りに二重引用符を維持したい場合は

+0

ダブルクォートはメールチェッカーからのものです –

+0

私はリポジトリで定義されたメタデータを使用するようにコンポーネントをリセットすることで問題を解決しましたが、有効です。 –

答えて

1

、あなたが入力文字列内の二重引用符(\ ")必要があることを指定し、この日付モデル

"\"yyyy-MM-dd HH:mm:ss\"" 

この方法を試してみてください。

+0

二重引用符は、mailchimp抽出からのものです。私は入力ファイルのフォーマットを制御していません.Talend内から入力ファイルを変更することはできません。 –

+0

これは巧妙な考えです。もし私がまだそれを解決していなければ、私はこの解決策をとったでしょう。 –

1

あなたは、入力データを変更することができた場合は、すべてのフィールドにまたはnoneのために引用符を有効にする必要がありますどちらか。

これは何のオプションがない場合、あなたはまたtFileInputFullRowでファイルを読み込むことができ、wは引用符を削除しますiは文字列を置き換え、後でデータをtDenormalizeで列データに変換します。

1

あなたは、メタデータを使用している場合:

  1. をコンポーネントがリポジトリを参照していることを確認します(コンポーネント - >施設のタイプ=リポジトリ)
  2. 」にテキスト囲い文字を変更するには、メタデータを変更します。 \ ""
関連する問題