Я пытаюсь проверить, можно ли интерпретировать строковую переменную в U-SQL SELECT как целое число, так что я пытаюсь использовать int.TryParse вместо «0» и «» со значением по умолчанию, равным двум, и всем, что указано выше 10 с 10. Вот код:
DECLARE @maxAvgkWh double = 100.00;
DECLARE @defaultM2 int = 90;
DECLARE @defaultPersons int = 2;
// Extracting installations and their information
@forDecisionTree =
EXTRACT [InstallationId] string,
[PrimaryHeatingType] string,
[Persons] string,
[SquareMeters] string,
[LatestAvgDailykWh] double
FROM "adl://some text file in azure data lake"
USING Extractors.Tsv(skipFirstNRows : 1, silent : true);
// Making sure that NULLS and zeroes and abnormal values are replaced with default values
@forDecisionTreeHouseTypeReplNulls =
SELECT [InstallationId],
[PrimaryHeatingType],
(
! int.TryParse(Persons, out var _pers) || _pers <= 0 ?
@defaultPersons :
_pers > 10 ?
10 :
_pers
).ToString() AS [Persons],
(
! int.TryParse([SquareMeters], out var _m2) || _m2 <= 0 ?
@defaultM2 :
_m2 > 500 ?
500 :
_m2
).ToString() AS [SquareMeters],
[LatestAvgDailykWh]
FROM @forDecisionTreeHouseType
WHERE [LatestAvgDailykWh] < @maxAvgkWh;
Я получаю следующую ошибку:
Ошибка C # CS1003: синтаксическая ошибка, ',' ожидается
на токене '_pers', строка 108 рядом с ###:
...! int.TryParse ([Persons], out var ### _pers) || _pers <= 0? ... </p>