簡體   English   中英

USQL Azure數據湖中的更新

[英]Update in USQL Azure Data lake

有什么方法可以更新行集中的值

數據:

1,apple,0
2,check,1
3,chec,1

USQL腳本:

@result = EXTRACT
ID int,
value string,
types int
FROM @"TLD_BT/sacmple.txt"
USING Extractors.Csv();

現在我想更新以上結果集@result set type = 1,其中值是apple

我嘗試了以下腳本。

UPDATE @result SET types=1 WHERE value="apple"

但我得到以下錯誤:

UPDATE  ### @result SET types=1 WHERE value="apple"

Error
   E_CSC_USER_SYNTAXERROR
Message
    syntax error. Expected one of: STATISTICS

無論如何,我可以通過它來更新行集的值,還是應該找出其他解決方法。

目前,U-SQL中沒有UPDATE命令,但是您可以使用條件語句來創建新列並將其輸出。 您還可以使用CTAS語法創建新的內部表。 以下示例:

@result =
    EXTRACT [ID] int,
            value string,
            types int
    FROM @"input/input.txt"
    USING Extractors.Csv();

//UPDATE @result SET types=1 WHERE value="apple"
@output =
    SELECT [ID] AS id,
           value,
           value == "apple"? 1 : types AS types
    FROM @result;

// CTAS
CREATE TABLE IF NOT EXISTS dbo.interimResult
(
    INDEX cdx_Result
    CLUSTERED(id)
    DISTRIBUTED BY
    ROUND ROBIN
)
AS
SELECT [ID] AS id,
       value,
       value == "apple"? 1 : types AS types
FROM @result;


// output result
OUTPUT @output TO "/output/adlaresult.csv"
USING Outputters.Csv();

希望有道理。 另請參見此處: U-SQL DML語句

如果您想更新同一張表,我們將創建一個新分區,並插入Unchanged和新記錄。 這樣,新分區將始終具有最新的數據集

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM