Azure / U-SQL - 将字符串转换为float

时间:2017-11-14 23:30:09

标签: azure u-sql

我在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;

1 个答案:

答案 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();

如果这对您不起作用,请提供一些示例数据和预期结果。