我想直接将$ rootfolder值复制到Azure Data Lake存储。
我无法弄清楚将其导入Data Lake而不是本地路径“ C:/”的正确语法。所以我尝试了从本地复制到Data Lake,仍然显示错误并且没有被复制?
是否可以将值直接导入到Azure Data Lake中,或者只能通过从本地复制到Data Lake中来完成?
function GetFolderContent
{
Param(
[string]$rootFolder
)
$items = Get-AzureRmDataLakeStoreChildItem -Account "xxx" -Path $rootFolder
Write-Host "$rootFolder"
$rootFolder >> "C:\temp\abc.csv"
`Import-AzureRmDataLakeStoreItem -Account $dataLakeStoreName -Path C:\temp -Destination $uploadDest -Concurrency` 4
foreach ($item in $items)
{
if ($item.Type -eq "DIRECTORY")
{
$nextFolder = $item.Name
if ($rootFolder -eq "\")
{
GetFolderContent $nextFolder
}
else
{
GetFolderContent $rootFolder/$nextFolder
}
}
}
return $null
}
$rootFolder = "/"
$uploadDest ="/"
$dataLakeStoreName ="xxx"
GetFolderContent $rootFolder
答案 0 :(得分:0)
尝试下面的命令,它对我而言效果很好。
$rootFolder = "/sss/"
$rootFolder >> "$env:Temp/abc.csv"
Import-AzureRmDataLakeStoreItem -Account "joydatalake1" -Path "$env:Temp/abc.csv" -Destination "/test/abc.csv" -Concurrency 4
我的数据湖:
更新:
如果要覆盖$env:Temp/abc.csv
和datalake
中的文件,请在命令中使用-Force
,如下所示。
$rootFolder = "/sss/"
$rootFolder | Out-File "$env:Temp/abc.csv" -Force
Import-AzureRmDataLakeStoreItem -Account "joydatalake1" -Path "$env:Temp/abc.csv" -Destination "/test/fgh.csv" -Concurrency 4 -Force