Невозможно выполнить преобразование типа данных в U-sql - PullRequest
2 голосов
/ 17 мая 2019

Я сталкиваюсь с проблемой при выполнении некоторых преобразований с использованием U-sql. Одна из проблем заключается в изменении формата даты. Только когда я пропускаю первые строки (1), я могу преобразовать формат даты. Но мне нужны имена столбцов, поэтому я не могу пропустить первый ряд. Также мне нужно сделать некоторые другие преобразования, такие как преобразование типов данных и простые объединения. Ниже приведен мой пример кода. Пожалуйста, помогите.

DECLARE @dir string = "/storefolder/Sourcefile/dwfile3.csv";
DECLARE @file_set_path string = "/BCBSvermot/Sample_output.csv";


@data = 
    EXTRACT 
            CHECK_DATE string,

    FROM @dir
    USING Extractors.Csv(skipFirstNRows:1);

@result = SELECT 
Convert.ToDateTime(CHECK_DATE).ToString("dd-MM-yyyy") AS CHECK_DATE
FROM @data;

OUTPUT @result
TO @file_set_path
USING Outputters.Csv();

Спасибо, Рав

1 Ответ

2 голосов
/ 17 мая 2019

Вы можете объявить функцию, подобную этой:

DECLARE @func Func<string,string> = 
    (s) =>{
           DateTime i; 
           var x = DateTime.TryParse(s, out i); 
           return x?((DateTime)i).ToString("dd-MM-yyyy",CultureInfo.CurrentCulture) : s;
          };

Тогда вы можете использовать его в своих запросах

@result = 
SELECT @func(CHECK_DATE) AS CHECK_DATE
FROM @data;
...