【備忘録メモ】DataSpiderで2ファイルを比較して、差分を出力した際に差分データを正しく抽出できない現象の解決法

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


#環境

DataSpider Cloud 1.4

##詰まったところ
➀ まったく同一内容のファイルを比較

####比較用ファイル(1)：inputdata1.csv
<img width="400" alt="2020-12-24 (12).png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/6e7a09e5-4a9a-11b3-7ba6-8b65ab08005d.png">


####比較用ファイル(2)：inputdata2.csv
<img width="400" alt="2020-12-24 (13).png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/144c061f-9a88-b52e-9f66-99e5fc376652.png">

➁ 一方のファイルの1行目が差分として出力されている

####差分を出力するファイル：test_diff.csv
<img width="400" alt="2020-12-24 (11).png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/711c7893-7dbb-adf7-e362-ba4965f35710.png">



#実装内容
##全体の実装
<img width="400" alt="スクリーンショット (359).png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/ed97b71d-536b-5ead-d73a-ab2f3f22a5f6.png">


###各パーツの内容
####CSV形式のファイルを読み取る
![スクリーンショット (361).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/c01d0bd1-6ace-22d9-34de-bd636ebb6835.png)


<img width="400" alt="2020-12-24 (3).png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/2460c60f-31b9-066b-c83e-916b75b6bba6.png">

<img width="400" alt="2020-12-25 (9).png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/c144b870-fd55-813d-0bcd-ae7776823a5b.png">


####単一行の文字列定数を出力します
![スクリーンショット (360).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/9c3a2ae4-6e76-0ea5-13ce-5618122ba801.png)

<img width="400" alt="2020-12-25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/0783d6ba-60a6-3ff9-86c1-6e2cab1144df.png">



####CSV形式のファイルを読み取る
![スクリーンショット (362).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/025b206c-c6df-34fc-7e2c-4fefa59f93b6.png)

<img width="400" alt="2020-12-24 (1).png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/77933e01-8874-b287-3b45-de521a526b57.png">

<img width="400" alt="2020-12-25 (4).png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/2fbf8531-935b-ba36-3e09-9620a8933be5.png">


####二つの入力データを比較
![スクリーンショット (363).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/74892251-1559-e186-5888-074d7923bf8a.png)

<img width="400" alt="2020-12-25 (3).png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/d94d5b59-ecef-afed-e033-73024b44f4e7.png">

<img width="400" alt="2020-12-25 (6).png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/e497d514-0aa9-67d1-3564-a164bf279ec7.png">


####比較したデータから差分を抽出
![スクリーンショット (364).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/c5363592-3bf2-ad9c-c8b3-6640455fe799.png)

<img width="400" alt="2020-12-25 (2).png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/2b2143c0-4040-dfcf-8f37-7a58df39e0e4.png">



####差分データをCSV形式のファイルに書き込む
![スクリーンショット (365).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/fc3c10dd-89a7-a2fc-87db-196c4acadb7f.png)


<img width="400" alt="2020-12-24 (9).png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/ea55c3e0-4e69-19b5-ac1d-977fcacc45c4.png">


<img width="400" alt="2020-12-24 (10).png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/c2e4bb6e-d412-7ba0-fad5-c3a2b32ae9a6.png">


###原因
inputdata1CSV読み取りパーツの読み取り設定タグと
inputdata2CSV読み取りパーツの読み取り設定タグの設定に差異があり
inputdata1では、最初の行は値として取得しないにチェックが入っていたため、１行目のデータが出力されています

実装した設定
<img width="400" alt="2020-12-25 (7).png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/52a4bb01-db77-bd92-2524-41c10c4361ca.png">




###解決策
inputdata1CSV読み取りパーツの読み取り設定タグと
inputdata2CSV読み取りパーツの読み取り設定タグの設定を統一します
今回のように読み取りを行うファイルにヘッダー要素がない場合は、CSV読み取りパーツの読み取り設定タグの、最初の行は値として取得しないのチェックを外します

<img width="400" alt="2020-12-24 (17).png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537336/f6412ba4-11b1-69ce-7094-f7071f51ca7c.png">



##参考
[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](https://doc.dataspidercloud.com/v1.4/help/ja/mapper/mapper_basic.html)
[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)