2016-12-22 6 views
1

Есть ли какой-либо путь в инструкции для вывода U-SQL, чтобы указать только те столбцы ввода, которые меня волнуют? Я работаю с устаревшей базой данных, которая экспортирует несколько таблиц в csv, который имеет около 200 столбцов. Мне только около 10 из этих полей. Я надеялся, что сделать что-то вроде:Заявление о выводе U-SQL - работа с сотнями столбцов

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

Так что идея будет указать индекс, соответствующий столбец которой данные поступают из.

Есть ли что-нибудь подобное в работах? Или мне всегда нужно определить все 200 столбцов? Я также открыт для других решений. Благодаря!

ответ

2

Вы можете написать свой собственный код экстрактора. Используйте экстракторы образцов по адресу https://github.com/Azure/usql/tree/master/Examples/DataFormats/Microsoft.Analytics.Samples.Formats в качестве руководства.

+1

Хотя невозможно сделать то, что я описал выше, это легко сделать с помощью пользовательского экстрактора, как вы предложили. Благодаря! – Dan

1

Существует нелегкий способ сделать это, как вы описали, но это не займет много времени, чтобы сценарий. Например, я часто использую Excel, чтобы помочь с помощью сценариев, например, вставить известный метаданные CSV 200 столбца затем сопоставьте его с типами данных 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 делать подобные вещи.

 Смежные вопросы

  • Нет связанных вопросов^_^