Azure / U-SQL - 将字符串转换为浮点数
Azure / U-SQL - convert string to float
我在 Azure 数据湖/U-SQL 中加载文件时遇到一些问题。我认为其中一列中的某些值可能存在问题(我可以将它们作为字符串加载到列中,但不能作为浮点数加载)所以我想将它们作为字符串加载,使用进行一些更改对有问题的值进行 CASE 语句,然后将新值转换为浮点数。但是,我找不到在 EXTRACT 语句之外执行此操作的方法。
下面是我在 SQL 中的做法。
有什么建议吗?
@inputInfo =
EXTRACT
var1 string,
var2 string,
var3 string
FROM "~/infile.txt"
USING Extractors.Text(quoting : false, delimiter : '|');
@t1 =
SELECT CASE WHEN var1 == "-0" THEN 0 ELSE var1 END AS var1
, var2
, var3
FROM @inputInfo;
@t2 =
SELECT CAST(var1 AS FLOAT) AS var1
, var2
, var3
FROM @t1;
您可以尝试转换它,例如
@departments =
SELECT * FROM
( VALUES
("Newton", 23.00m),
("Susan", 25.1234m),
("Emma", 25.9999m),
("Bradley", 25.9900m)
) AS T(Cutomer, Balance);
@result =
SELECT Cutomer,
(float)Balance AS Balance1
FROM @departments;
OUTPUT @result
TO "/output/output.txt"
USING Outputters.Tsv();
如果这对您不起作用,请提供一些示例数据和预期结果。
我在 Azure 数据湖/U-SQL 中加载文件时遇到一些问题。我认为其中一列中的某些值可能存在问题(我可以将它们作为字符串加载到列中,但不能作为浮点数加载)所以我想将它们作为字符串加载,使用进行一些更改对有问题的值进行 CASE 语句,然后将新值转换为浮点数。但是,我找不到在 EXTRACT 语句之外执行此操作的方法。
下面是我在 SQL 中的做法。
有什么建议吗?
@inputInfo =
EXTRACT
var1 string,
var2 string,
var3 string
FROM "~/infile.txt"
USING Extractors.Text(quoting : false, delimiter : '|');
@t1 =
SELECT CASE WHEN var1 == "-0" THEN 0 ELSE var1 END AS var1
, var2
, var3
FROM @inputInfo;
@t2 =
SELECT CAST(var1 AS FLOAT) AS var1
, var2
, var3
FROM @t1;
您可以尝试转换它,例如
@departments =
SELECT * FROM
( VALUES
("Newton", 23.00m),
("Susan", 25.1234m),
("Emma", 25.9999m),
("Bradley", 25.9900m)
) AS T(Cutomer, Balance);
@result =
SELECT Cutomer,
(float)Balance AS Balance1
FROM @departments;
OUTPUT @result
TO "/output/output.txt"
USING Outputters.Tsv();
如果这对您不起作用,请提供一些示例数据和预期结果。