0

結合しようとしているファイルがたくさんあります。これらの各ファイルの列の多くには null 値しか含まれていないことをたまたま知っています。U-SQL ステートメントを記述して、ファイルからデータを抽出し、null のみの列をチェックして除外するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

0

最もパフォーマンスの高い方法は、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

于 2016-10-10T18:49:52.153 に答える