使用Azure Powershell Runbook将Csv文件转换为Azure数据湖存储上的Xml

时间:2018-08-29 15:59:13

标签: powershell azure-data-factory azure-data-lake azure-runbook

我想使用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数据湖中写入文件。

1 个答案:

答案 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"

我已经成功测试了它。如果有兴趣,您可以在下面的屏幕截图中查看插图。

Shell power runbook

Test

Data Explorer

请注意,以上屏幕截图中我的运行簿的前几行与您的稍有不同,因为我已授予Automation Account RunAs帐户对Data Lake存储目标文件夹的权限。因此,您可以忽略此部分。

希望这会有所帮助!!干杯!