U-sql - Ошибка при определении шаблона входного файла - PullRequest
0 голосов
/ 19 июня 2019

В сценарии U-SQL, вызываемом конвейером фабрики данных Azure, у меня есть этот оператор, чтобы определить входной файл для моей процедуры: DECLARE @inputpattern_csv string = "/FOLDER/" + @year.ToString() + @month.ToString().PadLeft(2, '0') + "{daynum:}_ex1.csv";

Процедура всегда работала, но теперь, когда я ее запускаю, она возвращает эту ошибку: E_CSC_USER_INVALIDFILESETPATTERN: Invalid file set pattern 'daynum:' in 'adl://**************.azuredatalakestore.net/FOLDER/201904{daynum:}_ex1.csv'

И вывод ошибки на фабрике данных Azure следующий:

{
"errorCode": "2703",
"message": "Error Id: E_CSC_USER_INVALIDFILESETPATTERN, Error Message: Invalid file set pattern 'daynum:' in 'adl://**************.azuredatalakestore.net/FOLDER/201904{daynum:}_ex1.csv'.. ",
"failureType": "UserError",
"target": "U-sql Activity"
}

Является ли следствием обновления Azure Data Lake Storage Gen2? Как я могу это решить?

Спасибо

1 Ответ

0 голосов
/ 20 июня 2019

Кажется, вы определяете список файлов из указанного диапазона дат, верно? Если это правильно, возможно, приведенный ниже код поможет вам.

Вы можете обратиться к документу MS здесь

DECLARE @File_Set_Pattern = "/sample/{Virtual_Col_Name:yyyy}/{Virtual_Col_Name:MM}/{Virtual_Col_Name:dd}.csv; 

DECLARE @From_Date = new DateTime(2019,01,01); 
DECLARE @To_Date = new DateTime(2019,01,28); 

@N = EXTRACT 
        Column_Names string, //define list columns and datatype here
        Virtual_Col_Name DateTime from @File_Set_Pattern //this is virtual column name
USING Extractors.Csv(); //replace by extractor you are using

OUTPUT( SELECT * FROM @N WHERE Virtual_Col_Name BETWEEN @From_Date AND @To_Date ) TO "/sample/outputfile.csv USING Outputters.Csv;
...