2016-12-31 3 views
2

U-SQLは、ファイルを抽出する際にディレクトリとファイル名のパターンマッチングをサポートしています。私が知りたいのは、(カスタム抽出プログラムを実装せずに)ADLSでファイルを作成した日付に基づいてパターンマッチングをサポートしていることです。U-SQLはADLSの作成日に基づいてファイルを抽出することをサポートしています

フォルダに月間に作成されたファイルが含まれているとします(ファイル名にはファイル名の一部として日付が含まれていません)、特定の月のファイルのみをプルする方法があります。

答えて

1

U-SQL EXTRACT演算子は、ファイルに関するメタデータ(作成日など)を認識しません。ファイル名のみです。

1

おそらく.NET SDKを使用してソリューションを構築できます。 PowerShellを使用して、日付の時間基準を満たすすべてのファイルを含むファイルを作成できます。その後、必要に応じてコンテンツを消費します。

# Log in to your Azure account 
Login-AzureRmAccount 

# Modify variables as required 
$DataLakeStoreAccount = "<yourDataLakeStoreAccountNameHere>"; 
$DataLakeAnalyticsAccount = <yourDataLakeAnalyticsAccountNameHere>"; 
$DataLakeStorePath = "/Samples/Data/AmbulanceData/"; #modify as desired 
$outputFile = "Samples/Outputs/ReferenceGuide/filteredFiles.csv"; #modify as desired 
$filterDate = "2016-11-22"; 
$jobName = "GetFiles"; 

# Query directory and build main body of script. Note, there is a csv filter. 
[string]$body = 
"@initial = 
    SELECT * FROM 
    (VALUES 
" + 
(Get-AzureRmDataLakeStoreChildItem -Account $DataLakeStoreAccount -Path $DataLakeStorePath | 
Where {$_.Name -like "*.csv" -and $_.Type -eq "FILE"} | foreach { 
"(""" + $DataLakeStorePath + $_.Name + """, (DateTime)FILE.CREATED(""" + $DataLakeStorePath + $_.Name + """)), `r`n" }); 

# formattig, add column names 
$body = 
$body.Substring(0,$body.Length-4) + " 
    ) AS T(fileName, createDate);"; 

# U-SQL query and OUTPUT statement 
[string]$output = 
" 

// filter results based on desired time frame 
@filtered = 
    SELECT fileName 
    FROM @initial 
    WHERE createDate.ToString(""yyyy-MM-dd"") == ""$filterDate""; 

OUTPUT @filtered 
TO ""$outputFile"" 
USING Outputters.Csv();"; 

# bring it all together 
$script = $body + $output; 

#Execute job 
$jobInfo = Submit-AzureRmDataLakeAnalyticsJob -Account $DataLakeAnalyticsAccount -Name $jobName -Script $script -DegreeOfParallelism 1 

#check job progress 
Get-AzureRmDataLakeAnalyticsJob -Account $DataLakeAnalyticsAccount -JobId $jobInfo.JobId -ErrorAction SilentlyContinue; 

Write-Host "You now have a list of desired files to check @ " $outputFile 
関連する問題