エラー
org.embulk.spi.DataException: Invalid record at <行数>Caused by: org.embulk.standards.CsvParserPlugin$CsvRecordValidateException: java.lang.NumberFormatException: For input string: ""cannot cast String to long: "-"NumberFormatException: For input string: "-"Caused by: java.lang.NumberFormatException: For input string: "1.000001"
原因
数値型・日時型として推論されたカラム内に、対応外の文字(Nullや空文字やハイフン、小数点など)が含まれている場合に発生するエラーです。
TROCCOではEmbulkの仕様により、数値型および日時型のカラムに対応外の文字が含まれると、エラーが発生します。
より具体的には、下記のケースにおいて発生します。
- TROCCOの転送設定STEP2遷移時に実行される自動データ設定において、カラムのデータ型が数値型または日時型として推論される
- データ型が数値型・日時型として推論されたカラムに、対応外の文字が含まれる
- 対応外の文字例:
- 000-000-0000などの電話番号形式のデータに含まれるハイフン(-)
- 1.000001という小数点以下を含む数値データの小数点(.)
- 対応外の文字例:
対処法
2通りの方法が考えられます。
方法1:文字列型に変換して転送
- 転送設定STEP2のデータ設定タブのカラム定義にて、該当のカラムのデータ型をstringに設定します。
- 変更をプレビューをクリックします。
方法2:対応外の文字を任意の数字に置換して転送
※転送先によっては、出力オプションタブのカラム設定ができないため、以下の対処は取れないことがあります。
- 転送設定STEP2のデータ設定タブの文字列 正規表現置換にて、前述の対象外の文字を任意の数字に変換します。
(参考)文字列正規表現置換について - 転送設定STEP2の出力オプションタブのカラム設定にて、該当カラムのデータ型を数値型(INTEGER型など)に設定します。
コメント
0件のコメント
記事コメントは受け付けていません。