結合しようとしているファイルがたくさんあります。これらの各ファイルの列の多くには null 値しか含まれていないことをたまたま知っています。U-SQL ステートメントを記述して、ファイルからデータを抽出し、null のみの列をチェックして除外するにはどうすればよいですか?
ありがとう!
結合しようとしているファイルがたくさんあります。これらの各ファイルの列の多くには null 値しか含まれていないことをたまたま知っています。U-SQL ステートメントを記述して、ファイルからデータを抽出し、null のみの列をチェックして除外するにはどうすればよいですか?
ありがとう!
最もパフォーマンスの高い方法は、null 値だけを含む行をスキップするカスタム エクストラクタを作成することでしょう。
それ以外の場合は、次のように記述できます (非オブジェクト型の null インジケーターに注意してください)。
@data = EXTRACT c1 string, c2 int?, c3 DateTime? // ... more columns
FROM "/path/file.csv"
USING Extractors.Csv();
@data = SELECT * FROM @data WHERE c1 != null AND c2 != null AND c3 != null;
null
(比較では、ほとんどの場合、を列の型にキャストする必要があることに注意してください)。
異なるファイル間でスキーマが異なる場合は、入力行のスキーマを確認できる、いわゆるプロセッサを使用してフィルターを実行することもできます。の線に沿った何か
@data = PROCESS @data PRODUCE c1 string, c2 int?, c3 DateTime?
USING new MyAsm.NullFilterProcessor();
NullFilterProcessor
として実装する必要がある場所IProcessor
。