DataSpiderにてCSVファイルの差分をとるスクリプトを作成しました
スクリプトでは下記の2点を行っています
➀2つのファイルを比較し、片方のファイルにしか存在しないデータを差分として抽出
➁差分が抽出された場合、差分データをファイルに出力
しかし、動作確認したところ同一ファイルの比較にもかかわらず、
差分としてデータが出力されてしまう現象が発生しました
この現象についてCSVファイル読み取り処理パーツの読み取り設定を変更することで解決したので紹介します
環境
DataSpider Cloud 1.4
詰まったところ
➀ まったく同一内容のファイルを比較
比較用ファイル(1):inputdata1.csv

比較用ファイル(2):inputdata2.csv

➁ 一方のファイルの1行目が差分として出力されている
差分を出力するファイル:test_diff.csv

実装内容
全体の実装

各パーツの内容
CSV形式のファイルを読み取る


単一行の文字列定数を出力します

CSV形式のファイルを読み取る


二つの入力データを比較


比較したデータから差分を抽出

差分データをCSV形式のファイルに書き込む


原因
inputdata1CSV読み取りパーツの読み取り設定タグと
inputdata2CSV読み取りパーツの読み取り設定タグの設定に差異があり
inputdata1では、最初の行は値として取得しないにチェックが入っていたため、1行目のデータが出力されています
解決策
inputdata1CSV読み取りパーツの読み取り設定タグと
inputdata2CSV読み取りパーツの読み取り設定タグの設定を統一します
今回のように読み取りを行うファイルにヘッダー要素がない場合は、CSV読み取りパーツの読み取り設定タグの、最初の行は値として取得しないのチェックを外します

参考
[DataSpider Cloud ヘルプ : CSVファイル読み取り処理]
(https://doc.dataspidercloud.com/v1.4/help/ja/adapter/file/csv_get_data.html)
[DataSpider Cloud ヘルプ : 結合]
(https://doc.dataspidercloud.com/v1.4/help/ja/adapter/convert/join_converter.html)
DataSpider Cloud ヘルプ : Mapper
[DataSpider Cloud ヘルプ : CSVファイル書き込み処理]
(https://doc.dataspidercloud.com/v1.4/help/ja/adapter/file/csv_put_data.html)
[DataSpider Cloud ヘルプ : 単一行文字列ロジック]
(https://doc.dataspidercloud.com/v1.4/help/ja/mapper/variable/logic/singleLineStringConstant.html)