5

我想使用 Azure Powershell将 CSV 文件转换为 Azure 数据湖存储上的 XML 。我在azure 自动化的 Runbook 上使用了这段代码 ,它运行良好,但没有生成 XML

$cred = Get-AutomationPSCredential -Name 'xyz'
$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 数据湖中写入文件。

4

1 回答 1

4

感谢您伸出援手!

您尝试使用 Out-File cmdlet 将 xml 文件导出到/custom/logile/masters/TestAzure 自动化执行的当前实例中不存在的路径。而且您没有将 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"

我已经成功测试过了。如果有兴趣,您可以查看下面的屏幕截图以获取说明。

壳牌动力手册

测试

数据浏览器

请注意,上面屏幕截图中我的运行手册的前几行与您的有点不同,因为我已授予自动化帐户 RunAs 帐户对 Data Lake 存储目标文件夹的权限。所以你可以忽略这部分。

希望这可以帮助!!干杯!!

于 2019-09-10T16:50:03.770 回答