我在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;
答案 0 :(得分:2)
您可以尝试投射它,例如
@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();
如果这对您不起作用,请提供一些示例数据和预期结果。