CSVファイル・TSVファイルの読み取り

HULFT SquareでTSVファイルを読み取りたいが、「TSVファイル読み取り」という名前のコンポーネントはないため、どのコンポーネントを使えばいいかと考えたことはないでしょうか。
HULFT Squareの「CSVファイル読み取り」コンポーネントでは、コンポーネント名であるCSVファイルだけでなく、TSVファイルを指定して読み取りを行うことも可能です。
今回の記事ではCSVファイルとTSVファイルを読み取る時の設定内容の差異について紹介します。

<目次>

1.CSVファイルとTSVファイル

CSVファイル、TSVファイルはいずれもテキストファイルの形式で、それぞれ拡張子を「.csv」、「.tsv」として作成します。
これらの形式には、データの区切り方が異なるという違いが存在します。

1-1. CSVファイル

CSVは「Comma Separated Values」の略称で、直訳すれば「カンマで区切られた値」となります。
CSV形式のファイルでは以下のように、列ごとのデータをカンマで区切って作成します。
このサンプルでは、先頭行は列名を取得するためのヘッダー行であり、値の読み取り対象には含まれません。

1-2. TSVファイル

TSVは「Tab Separated Values」の略称で、直訳すれば「タブで区切られた値」となります。
TSV形式のファイルでは以下のように、列ごとのデータをタブで区切って作成します。
このサンプルでは、先頭行は列名を取得するためのヘッダー行であり、値の読み取り対象には含まれません。

2.CSVファイルの読み取り

前述の通り、HULFT Squareでは「CSVファイル読み取り」コンポーネントを使用することで、CSVファイル、TSVファイルどちらの読み取りも行うことが可能です。
ただし使用するファイル形式によって適切な設定を行わない場合、データを列ごとに正しく区切って読み取ることができなくなりますので注意してください。
まずCSVファイルを読み取る時の設定を紹介します。

2-1. CSVファイル読み取りコンポーネントの配置

HULFT Squareデザイナのツールパレットの「ファイル」から「CSV」フォルダの「CSVファイル読み取り」コンポーネントを選択し、ドラッグアンドドロップでスクリプトキャンバスに配置します。

2-2. 読み取り処理の設定

「必須設定」タブにて、読み取り対象のCSVファイルを「参照」から選択します。
デリミタ文字はデフォルトのまま「半角カンマ」とします。
正しい区切り方を設定できている場合、「列一覧の更新」をクリック時「列一覧」に先頭行の文字列が、個別の列として表示されます。

上記の必須設定および「読み取り設定」タブの設定を実施したら、「完了」をクリックしてCSVファイルの読み取りコンポーネントの設定は完了です。
なお、読み取りファイルの文字コードと読み取り設定のエンコードが一致していない場合、「列一覧の更新」クリック時やデータ読み取り時に、かな文字のデータが文字化けを起こします。
事前に読み取りファイルの文字コードに従って、エンコードの設定を行ってください。

2-3. データ読み取りの確認

データの読み取りを確認するためにマッピングを配置し、読み取ったデータを変数にマッピングします。

最後にスクリプトのStartとEndともフローを接続し、スクリプトを保存します。
スクリプトを実行し、実行ログを確認すると、読み取ったデータが変数に格納されていることが確認できます。

3.TSVファイルの読み取り

3-1. CSVファイル読み取りコンポーネントの配置

TSVファイルの読み取りもCSVファイルと同様に、「CSVファイル読み取り」コンポーネントを配置して設定します。

3-2. 読み取り処理の設定

設定箇所はCSVファイルの読み込みと同じです。しかしTSVファイルを使用する場合、デリミタ文字の設定をデフォルトの「半角カンマ」のままにしてしまうと、「列一覧の更新」クリック時に以下のような列一覧が表示されます。これは本来別々の列として読み取られる想定だったデータが、一つの列として読み取られてしまっている状態です。
デリミタ文字の設定は読み取り対象のデータを区切る基準を指定するものです。そのため半角カンマの設定でTSVファイルを読み取ろうとすると、TSVファイルの区切り文字はタブであるため列ごとにデータが区切られず、データが想定した列の構成で読み取られません。

TSVファイルを正しく読み取るためには、デリミタ文字の設定を「タブ」に変更します。これで読み取り時にデータを区切る基準がタブになりますので、データを想定した列の構成で正しく読み取ることができます。
なお、TSVファイルをカンマ区切りで読み取ろうとした場合と同様に、CSVファイルをタブ区切りで読み取ろうとした場合もデータを正しく読み取ることができません。使用するファイルのデータがどのように列を区切っているかを確認し、それに合わせたデリミタ文字の設定を行うようにしてください。

3-3. データ読み取りの確認

CSVファイルの読み取り時と同様に、読み取りデータをマッピングで変数に格納してスクリプトを完成させ実行すると、読み取りデータが変数に格納されていることが確認できます。


いかがだったでしょうか?
他にも、様々なケースの対処法を紹介していますので、是非目を通してみてください。


<免責事項>
情報の掲載には注意を払っておりますが、掲載された情報の内容の正確性については一切保証しません。また、当サイトに掲載された情報を利用・使用(閲覧、投稿、外部での再利用など全てを含む)するなどの行為に関連して生じたあらゆる損害等につきましても、理由の如何に関わらず自己責任で行う必要があります。

テクバンでは、お客様の業務にある困りごとをETLやBIをはじめ様々なテクノロジーで解決するためのご相談をお受けしております。「HULFT Square」もあわせてご覧下さい。HULFT Squareでデータ分析基盤を構築し、様々な経営判断の材料を可視化していくサービスなども提供してまいります。