我想使用Azure Powershell 将CSV文件转换为Azure数据湖存储上的XML。 我在 Azure Automation Runbook 上使用了此代码 并且工作正常,但未生成XML
$cred = Get-AutomationPSCredential -Name 'AutomationCred'
$subscriptionName = 'Pay-As-You-Go'
$null = Add-AzureRmAccount -Credential $cred
Select-AzureRmSubscription -SubscriptionName $subscriptionName | Out-Null
$adla = "TestAzure"
$obj = Get-AzureRmDataLakeStoreItem -AccountName $adla -Path "/custom/logile/masters/Test/Test.csv"
$xmlobj = ConvertTo-Xml -InputObject $obj -As 'string'
$xmlobj | Out-File -FilePath "/custom/logile/masters/Test/xmlOut.xml"
直到“ $ obj = Get”为止,此代码才能正常工作,但是我无法写入Azure数据湖。 有什么方法可以使用Object在Azure数据湖中写入文件。
答案 0 :(得分:4)
感谢您与我们联系!
您试图使用Out-File cmdlet将xml文件导出到Azure自动化执行的当前实例中不存在的路径/custom/logile/masters/Test
。而且您没有将xml文件上传到Data Lake Store。
要满足您的要求,您必须使用以下命令替换运行手册中的最后一行(即,最后一行是$xmlobj | Out-File -FilePath "/custom/logile/masters/Test/xmlOut.xml"
)
$xmlobj | Out-File -FilePath "$env:temp/xmlOut.xml"
Import-AzureRmDataLakeStoreItem -AccountName $adla -Path "$env:temp/xmlOut.xml" -Destination "/custom/logile/masters/Test/xmlOut.xml"
我已经成功测试了它。如果有兴趣,您可以在下面的屏幕截图中查看插图。
请注意,以上屏幕截图中我的运行簿的前几行与您的稍有不同,因为我已授予Automation Account RunAs帐户对Data Lake存储目标文件夹的权限。因此,您可以忽略此部分。
希望这会有所帮助!!干杯!