从 Azure 数据湖存储文件中删除行尾逗号
Remove end of Line Comma from a Azure data lake store File
我需要一些有关使用 Power Shell 在 Azure 数据湖存储中进行文件处理的输入 Shell。
我的 ADLS Gen 1 帐户中有一个管道分隔的输入文件。
文件内容如下所示
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 循环中打印 hello,它只会打印一个。但是我通过 运行ning -Head 和 -Tail 命令验证了没有换行问题。我附上了相同的屏幕截图。
你能帮我理解我在这里做错了什么以及删除每行中最后一个逗号的任何替代方法吗?
我认为您不能直接通过 powershell 修改商店项目。
Get-AzureRmDataLakeStoreItemContent
只是获取内容。 (根据我的经验,如果它允许你这样做,它应该是像 Set-AzureRmDataLakeStoreItemContent
或 Update-AzureRmDataLakeStoreItemContent
这样的命令)
解决方法是再次 export the file -> modify it in local -> import it。
更新:
如果我没有误解你的问题,请尝试下面的命令。
((Get-AzureRmDataLakeStoreItemContent -AccountName "joydatalake1" -Path "/sss/test.csv").ToString() -split("`r")).Trim() | ForEach-Object {$_.TrimEnd(",")}
我需要一些有关使用 Power Shell 在 Azure 数据湖存储中进行文件处理的输入 Shell。
我的 ADLS Gen 1 帐户中有一个管道分隔的输入文件。
文件内容如下所示
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 循环中打印 hello,它只会打印一个。但是我通过 运行ning -Head 和 -Tail 命令验证了没有换行问题。我附上了相同的屏幕截图。
你能帮我理解我在这里做错了什么以及删除每行中最后一个逗号的任何替代方法吗?
我认为您不能直接通过 powershell 修改商店项目。
Get-AzureRmDataLakeStoreItemContent
只是获取内容。 (根据我的经验,如果它允许你这样做,它应该是像 Set-AzureRmDataLakeStoreItemContent
或 Update-AzureRmDataLakeStoreItemContent
这样的命令)
解决方法是再次 export the file -> modify it in local -> import it。
更新:
如果我没有误解你的问题,请尝试下面的命令。
((Get-AzureRmDataLakeStoreItemContent -AccountName "joydatalake1" -Path "/sss/test.csv").ToString() -split("`r")).Trim() | ForEach-Object {$_.TrimEnd(",")}