U-SQL 入門② ~ ファイルのインプット ~
※ストレージは ADLA のデータソースとして登録しておく必要があります。
ファイルインプットの例
// デフォルトの ADLS の PATH を指定する場合 @rows = EXTRACT name string, id int FROM “/…/data.csv” USING Extractors.Csv(); // ADLS を指定する絶対パスの場合 @rows = EXTRACT name string, id int FROM “adl://…/data.csv” USING Extractors.Csv(); // Blob ストレージを指定する場合 @rows = EXTRACT name string, id int FROM “wasb://…/data.csv” USING Extractors.Csv();
USING 句で Extractor を指定して、読み込むファイルのフォーマットを指定します。
ビルトインの Extractor は以下の 3 つがあります。
- Extractors.Text() : ファイルを指定したデリミタで区切って読み取る
- Extractors.Csv() : CSV ファイルを読み取る
- Extractors.Tsv() : TSV ファイルを読み取る
// "|" で区切られたテキストファイルを読み込む。最初の 1 行目はスキップする @rows = EXTRACT name string, id int, FROM "/file.text" USING Extractors.text(delimiter: "|", skipFirstNRows: 1) // CSV ファイルを読み込む。カラム数が合わない場合やデータ型が合わない場合はその行をスキップする @rows = EXTRACT name string, id int, FROM "/file.csv" USING Extractors.csv(silent: true) // TSV ファイルを読み込む。ASCII エンコードを指定 @rows = EXTRACT name string, id int, FROM "/file.tsv" USING Extractors.csv(encoding: Encoding.[ASCII])
Extractor の共通パラメータ
パラメータ | デフォルト値 | 指定できる値 | 説明 |
---|---|---|---|
encoding | Engoding.UTF8 | Encoding.[ASCII] Encoding.BigEndianUnicode Encoding.Unicode Encoding.UTF7Encoding.UTF8 Encoding.UTF32 |
ファイルのエンコード指定 |
escapeCharacter | null | エスケープ用の文字を指定 | |
nullExcape | null | null 値と解釈する文字を指定 | |
quoting | true | true false |
カラムのフィールドの " (ダブルクォート) を考慮にいれるかどうか現在は " (ダブルクォート) 以外には対応していない |
rowDelimiter | "\r\n" "\r" "\n" |
行のセパレータを何にするか。デフォルトでは改行コードが指定される | |
silent | false | true false |
指定したカラム数と違うカラム数の行が見つかった場合や指定したものと異なるデータ型があった場合に、スキップして読み込むか、それともエラーを吐いて処理を止めるか |
skipFirstNRows | 0 | 読み込むときに先頭から指定した行数だけスキップする |