我需要使用Power Shell在Azure Data Lake存储中进行文件处理的一些输入。
我的ADLS第一代帐户中有一个管道定界输入文件。
文件内容如下所示
1|2|3|a,b,
3|4|5|d,h,
我可以使用以下代码在本地PC中使用powershell删除最后一个逗号
Get-Content $file_name | ForEach-Object {$_.TrimEnd(",") }
但是,当我对Azure Data Lake Storage Gen 1帐户中的相同文件运行相同的查询时,数据没有任何反应。我使用的代码是
Get-AzureRmDataLakeStoreItemContent -Account $accountName -Path $myrootdir/path/test.csv| ForEach-Object {$_.TrimEnd( ",") }
我有一个发现是ForEach-Object只返回一次。那就是如果我在ForEach-Object循环内打个招呼,它只会打印一个。但是我通过运行-Head和-Tail命令验证没有换行问题。我要附上相同的屏幕截图。
能否请您帮助我了解我在这里做错了什么,以及删除每行最后一个逗号的替代方法。
答案 0 :(得分:0)
我认为您不能直接通过powershell修改商店商品。
Get-AzureRmDataLakeStoreItemContent
仅获取内容。 (根据我的经验,如果允许的话,它应该是Set-AzureRmDataLakeStoreItemContent
或Update-AzureRmDataLakeStoreItemContent
之类的命令)
解决方法是再次export the file->在本地-> import it进行修改。
更新:
如果我不误解您的问题,请尝试以下命令。
((Get-AzureRmDataLakeStoreItemContent -AccountName "joydatalake1" -Path "/sss/test.csv").ToString() -split("`r")).Trim() | ForEach-Object {$_.TrimEnd(",")}