我有一個非常大的CSV,其中每行包含客戶和商店ID以及交易信息。當前的測試文件大約爲40 GB(大約2天),因此對於選擇查詢的任何合理返回時間來說,分區是絕對必要的。如何僅使用U-SQL和文件中的某些字段將大文件分區爲文件/目錄?
我的問題是這樣的:當我們收到一個文件時,它包含了多個商店的數據。我想使用「虛擬列」功能將該文件分離到各自的目錄結構中。該結構是「/Data/{CustomerId}/{StoreID}/file.csv」。
我還沒有得到它與OUTPUT語句一起工作。語句中使用是這樣的:
// Output to file
OUTPUT @dt
TO @"/Data/{CustomerNumber}/{StoreNumber}/PosData.csv"
USING Outputters.Csv();
它提供了以下錯誤:
Bad request. Invalid pathname. Cosmos Path: adl://<obfuscated>.azuredatalakestore.net/Data/{0}/{1}/68cde242-60e3-4034-b3a2-1e14a5f7343d
有沒有人試圖同樣的事情?我試圖連接字段的輸出路徑,但這是一個不行。我想過把它作爲一個函數(UDF)來完成的,該函數使用兩個ID並過濾整個數據集,但這看起來非常低效。
提前致謝閱讀/回覆!
完美的明確OUTPUT語句第二U-SQL腳本!非常感謝回覆! (我真的有點慌張,實際上聽到了團隊的聲音!) –
要添加到Saveen的答案:功能請求在https://feedback.azure.com/forums/327234-data-lake/suggestions/10550388-support -dynamic-輸出文件名功能於ADLA。儘管該功能正在開發中,但請隨時添加您的投票。 –