U-SQL 入門② ~ ファイルのインプット ~


U-SQL でのファイルのインプットは FROM 句で PATH を指定します。
※ストレージは 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 読み込むときに先頭から指定した行数だけスキップする


U-SQL Built-in Extractors | Microsoft Docs