2016-12-22 4 views
1

U-SQL抽出ステートメントには、気になる入力カラムのみを指定する方法はありますか?私は約200の列を持つcsvにいくつかのテーブルをエクスポートするレガシーデータベースを使用しています。私はこれらのフィールドのうちの約10個だけを気にしています。だから、アイデアはデータがから来ている列に対応するインデックスを指定することですU-SQL抽出ステートメント - 何百ものカラムを扱っています

EXTRACT CustomerID:0 string, 
    StoreNumber:5 double, 
    ReceiptNumber:20 double, 
    Timestamp:125 int 
FROM "somefile.csv" 
USING Extractors.Csv(); 

:私のような何かを期待していました。

このような作品はありますか?あるいは、私はいつも200列すべてを定義する必要がありますか?私は他のソリューションにもオープンしています。ありがとう!

答えて

1

これを簡単に記述する方法はありませんが、スクリプトを書くのに時間がかかりません。例えば、私は、多くの場合、スクリプトを支援するために、Excelを使用して、例えば200列のcsvのための知られているメタデータはその後、U-SQLデータ型にマッピングして貼り付け、例えば

Excel U-SQL helper

あなたはすべて持っていた初期U-SQL viewを作成することができます

CREATE VIEW IF NOT EXISTS dbo.view1 
    AS 
EXTRACT col1 int, 
     col2 string, 
     col3 string, 
     col4 string, 
     col5 string 
FROM "/input/input44.txt" 
USING Extractors.Csv(); 


CREATE VIEW IF NOT EXISTS dbo.view2 
    AS 
SELECT col1, 
     col2 
FROM dbo.view1; 


@input = 
    SELECT * 
    FROM dbo.view2; 

私も時々同様のことを行うには、Visual StudioのFind and Replace with RegExを使用:上記の方法を使用して列は、その後、あなたが欲しいの列の最初のビューに基づいて別のビューを作成します。

関連する問題