You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ADLS Gen2多路径文件详情导出CSV仅保留最后路径数据问题

解决ADLS Gen2多路径文件详情导出CSV覆盖问题

你的脚本每次循环调用Export-Csv时,默认会覆盖目标CSV文件,导致前几个路径的数据被后续循环的内容清空,最终只保留最后一个路径的结果。下面提供两种可行的解决方法:

方法一:先收集所有数据再一次性导出(推荐)

先将所有路径的文件详情统一收集到数组中,最后一次性导出,减少IO操作次数,代码更简洁:

$Context = New-AzureStorageContext -StorageAccountName "cordus6abfsuat001" -UseConnectedAccount
$paths = "path1", "path2", "path3", "path4", "path5"

# 初始化空数组存储所有文件数据
$allFiles = @()

foreach($element in $paths){
    # 将当前路径的文件数据追加到数组
    $allFiles += Get-AzDataLakeGen2ChildItem -Context $Context -FileSystem "root" -Path $element
}

# 统一导出所有数据至CSV
$allFiles | Export-Csv "filename.csv" -NoTypeInformation

方法二:使用-Append参数循环追加内容

如果数据量极大,担心内存占用过高,可以用-Append参数逐次追加内容,同时避免重复写入表头:

$Context = New-AzureStorageContext -StorageAccountName "cordus6abfsuat001" -UseConnectedAccount
$paths = "path1", "path2", "path3", "path4", "path5"

# 先清理已存在的目标文件,避免残留旧数据
if(Test-Path "filename.csv"){
    Remove-Item "filename.csv"
}

foreach($element in $paths){
    # 第一次写入时直接创建文件,后续循环追加内容
    if(-not (Test-Path "filename.csv")){
        Get-AzDataLakeGen2ChildItem -Context $Context -FileSystem "root" -Path $element | Export-Csv "filename.csv" -NoTypeInformation
    }
    else{
        Get-AzDataLakeGen2ChildItem -Context $Context -FileSystem "root" -Path $element | Export-Csv "filename.csv" -NoTypeInformation -Append
    }
}

方法说明

  • 方法一适合数据量不大的场景,逻辑简单,执行效率更高;
  • 方法二适合超大规模数据导出,避免一次性加载所有数据占用过多内存。

内容的提问来源于stack exchange,提问作者Swarnava Sen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 16:32:21