Share via


schema_merge プラグイン

表形式のスキーマ定義を統合スキーマにマージします。

スキーマ定義は、 getschema 演算子によって生成される形式である必要があります。

この schema merge 操作は、入力スキーマの列を結合し、データ型を一般的な型に減らそうとします。 データ型を減らすことができない場合は、問題のある列にエラーが表示されます。

このプラグインは、evaluate 演算子を使用して呼び出します。

構文

T|evaluateschema_merge(PreserveOrder)

構文規則について詳しく知る。

パラメーター

名前 必須 説明
PreserveOrder bool true設定すると、保持されている最初の表形式スキーマで定義されている列の順序を検証するようにプラグインに指示されます。 同じ列が複数のスキーマ内にある場合、列の序数は、最初に出現したスキーマの列序数と同じである必要があります。 既定値は trueにする必要があります。

戻り値

schema_merge プラグインは、getschema 演算子から返される出力と同様の出力を返します。

新しい列が追加されたスキーマとマージします。

let schema1 = datatable(Uri:string, HttpStatus:int)[] | getschema;
let schema2 = datatable(Uri:string, HttpStatus:int, Referrer:string)[] | getschema;
union schema1, schema2 | evaluate schema_merge()

出力

ColumnName ColumnOrdinal DataType [列の型]
Uri 0 System.String string
HttpStatus 1 System.Int32 int
Referrer 2 System.String string

列の順序が異なるスキーマとマージします (新しいバリアントで 1 から 2 への HttpStatus 序数変更)。

let schema1 = datatable(Uri:string, HttpStatus:int)[] | getschema;
let schema2 = datatable(Uri:string, Referrer:string, HttpStatus:int)[] | getschema;
union schema1, schema2 | evaluate schema_merge()

出力

ColumnName ColumnOrdinal DataType [列の型]
Uri 0 System.String string
Referrer 1 System.String string
HttpStatus -1 ERROR (不明なCSLタイプ:ERROR (列の順序が正しくありません)) ERROR (列の順序が正しくありません)

列の順序が異なるが、PreserveOrderfalse に設定したスキーマとマージします。

let schema1 = datatable(Uri:string, HttpStatus:int)[] | getschema;
let schema2 = datatable(Uri:string, Referrer:string, HttpStatus:int)[] | getschema;
union schema1, schema2 | evaluate schema_merge(PreserveOrder = false)

出力

ColumnName ColumnOrdinal DataType [列の型]
Uri 0 System.String string
Referrer 1 System.String string
HttpStatus 2 System.Int32 int