schema_merge プラグイン
表形式スキーマ定義を統合スキーマにマージします。
スキーマ定義は、 getschema
演算子によって生成される形式である必要があります。
この schema merge
操作は、入力スキーマの列を結合し、データ型を一般的な型に減らそうとします。 データ型を減らすことができない場合は、問題のある列にエラーが表示されます。
このプラグインは、evaluate
演算子を使用して呼び出されます。
構文
T
|
evaluate
schema_merge(
PreserveOrder)
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
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 | ColumnType |
---|---|---|---|
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 | ColumnType |
---|---|---|---|
Uri | 0 | System.String | string |
Referrer | 1 | System.String | string |
HttpStatus | -1 | ERROR (不明なCSLタイプ:ERROR (列の順序が正しくありません)) | ERROR (列の順序が正しくありません) |
列の順序が異なるが、PreserveOrder
を false
に設定したスキーマとマージします。
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 | ColumnType |
---|---|---|---|
Uri | 0 | System.String | string |
Referrer | 1 | System.String | string |
HttpStatus | 2 | System.Int32 | int |