Преобразовать строку в число с плавающей точкой с экспоненциальными числами - PullRequest
0 голосов
/ 09 января 2019

Мне нужно преобразовать строку в число с плавающей точкой Мне нужен код U-SQL.

сценарий может быть экспоненциальным, как 10 ^ 2

Я пытался Float.Convert, но не работает.

Я ожидаю

convert(10^2) = 100

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Пример использования встроенных функций U-SQL:

DECLARE @func Func <string,int?> = (s) =>{int x = Convert.ToInt32(s.Split('^')[0]); int y = Convert.ToInt32(s.Split('^')[1]); return x*y;};

DECLARE @inputFile string = @"\input\input36.csv";
DECLARE @outputFile string = @"\output\output.csv";

@input =
    EXTRACT rowId int,
            expo string
    FROM @inputFile
    USING Extractors.Csv();


@output =
    SELECT *,
           @func(expo) AS z
    FROM @input;


OUTPUT @output
TO @outputFile
USING Outputters.Csv(quoting:false);

Используя этот пример файла , я получил следующие результаты:

results

0 голосов
/ 09 января 2019

Предполагая, что это ваш собственный формат, вам нужно написать функцию C # для этого.

Вы можете написать код позади

https://www.purplefrogsystems.com/paul/2017/04/calling-u-sql-stored-procedures-with-c-code-behind/

или функции

https://sqlplayer.net/2017/10/functions-in-the-usql-the-hidden-gem-in-the-summer-2017-update/

...