csvfile
CSV ファイルからデータを取得します。
コマンドプロパティ
| 項目 | 説明 |
|---|---|
| コマンドタイプ | ドライバークエリ |
| 必要な権限 | ローカルファイル読み取り権限 |
| ライセンス使用量 | 集計あり |
| 並列実行 | 非対応 |
| 分散実行 | 非対応 |
構文
csvfile [offset=INT] [limit=INT] [tab={t|f}] [strict={t|f}] [maxcol=INT] [rest={t|f}] [cs=STR] PATH
オプション
offset=INT- スキップするレコード数。ヘッダー行の後から数えます。
limit=INT- 取得する最大レコード数。
tab={t|f}tを指定すると区切り文字としてタブ文字を使用します。省略またはfを指定するとカンマ(,)を区切り文字として使用します。strict={t|f}tを指定すると RFC 4180 基準で厳密に解析します。maxcol=INT- 最大カラム数。この数を超えるカラムはフィールドを生成しません。
rest={t|f}tを指定するとmaxcolを超えるカラムを_restフィールドに記録します。cs=STR- CSV ファイルの文字エンコーディング(デフォルト:
utf-8)。
対象
PATH- CSV ファイルのパス。ワイルドカード(
*)を使用して複数のファイルを指定できます。ファイル拡張子が.gzの場合は gzip 圧縮を自動的に解除します。
出力フィールド
| フィールド | タイプ | 説明 |
|---|---|---|
| (ヘッダー列) | string | CSV ヘッダーで定義されたフィールド名とその値 |
_file | string | 元のファイル名 |
_rest | string | maxcol超過カラム(rest=tオプション使用時のみ出力) |
エラーコード
パースエラー
| エラーコード | メッセージ | 説明 |
|---|---|---|
| 10802 | - | ファイルパスが指定されていない場合 |
| 10800 | - | ファイルが存在しないか読み取れない場合 |
| 10801 | - | 親ディレクトリが存在しないか読み取れない場合 |
| 10803 | - | ファイルアクセスが拒否された場合 |
説明
csvfileコマンドは、指定した CSV ファイルを読み取り各行をレコードとして返します。ファイルの最初の行をヘッダーとして認識してフィールド名を自動的に設定します。
ヘッダーで定義したカラム数よりデータ行のカラムが多い場合、超過したカラムはcolumn0、column1、...の形式のフィールド名として返されます。maxcolオプションとrest=tオプションを一緒に使用すると、超過したカラムを_restフィールドにまとめて返すことができます。
BOM(Byte Order Mark)が含まれるファイルを自動的に認識します。
使用例
-
CSV ファイルを取得
csvfile /opt/logpresso/data/sample.csv指定した CSV ファイルのすべてのデータを取得します。
-
タブ区切りファイルを最大 100 件取得
csvfile tab=t limit=100 /opt/logpresso/data/sample.tsvタブ文字を区切り文字として使用して最大 100 件のレコードを取得します。
-
EUC-KR エンコーディングファイルを取得
csvfile cs=euc-kr /opt/logpresso/data/legacy.csvEUC-KR でエンコードされた CSV ファイルを取得します。